iceoryx2: benchmark-publish subscripe panic

Bug report after analysis

bindgen-0.69.2 is unable to handle macro redefines, see: https://github.com/rust-lang/rust-bindgen/issues/2722

The signal SIGSTOP and SIGCONT are redefined under ubuntu 20.04 in the included file bits/signum.h of signal.h. The redefinition turns SIGCONT into the unfetchable signal SIGSTOP which leads to a failure in the sigaction call.

The quick fix is to comment out the Continue signal in the abstraction, since it is also nowhere used. When the bindgen bug report is closed, we can revert the change and close the issue.

  1. comment out Continue signal in signal.rs
  2. comment in Continue signal after bindgen bugfix

Original bug report from @fengtuo58

This should never happen! Unable to register raw sional since sigaction was called with invalid parameters. thread " <unnamed> iceorvx2-bb/posix/src/signal.rs:516:13: panicked at rom: SignalHandler ( registered signals: 11 ) :.: This should never happen! Unable to register raw signal since sigaction was called with inve lid parameters note: run with RUST BACKTRACE=1’ environment variable to display a backtrace 12 [F] SianalHandler f registered sianals: [7 This should never happen! nable to register raw sional since sigaction was called with invalid parameters thread ’ <unnamed>’ panicked at iceoryx2-bb/posix/src/sianal,rs:516:13: rom: SianalHandler ! registered sianals: : This should never happen: Unable to register raw signal since sigaction was called with inva lid parameters . stack backtrace:

About this issue

  • Original URL
  • State: open
  • Created 6 months ago
  • Comments: 22 (13 by maintainers)

Commits related to this issue

Most upvoted comments

@elBoberido @passchaos

So the bug is in bindgen-0.65.1 (and current 0.69.2). The following C code is not translated correctly.

#define A 1
#define B 2

#undef A
#define A 2
#undef B
#define B 1

The result should that A == 2 and B == 1 but the generated file shows

/* automatically generated by rust-bindgen 0.65.1 */

pub const A: u32 = 1;
pub const B: u32 = 2;

@elBoberido I confirm that the issue are fixed, both for tegra and ubuntu.

@passchaos @fengtuo58 The bug is fixed and iceoryx2 0.2.2 is released.