Illegal Instruction crash on startup with spread_checks in src/checks.c
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
haproxy (Ubuntu) |
Expired
|
High
|
Unassigned |
Bug Description
haproxy crashes after starting up successfully, when the spread_checks option is provided.
According to GDB, here is the backtrace of the crash:
```
Program received signal SIGILL, Illegal instruction.
0x000000000042b97f in process_chk (t=0x6ef7c0) at src/checks.c:1587
1587 src/checks.c: No such file or directory.
in src/checks.c
(gdb) bt
#0 0x000000000042b97f in process_chk (t=0x6ef7c0) at src/checks.c:1587
#1 0x00000000004103ee in process_
#2 0x0000000000406440 in run_poll_loop () at src/haproxy.c:1304
#3 0x0000000000408966 in main (argc=<value optimized out>, argv=0x7fffffff
```
it's caused by this code:
```
if (global.
rv = srv_getinter(check) * global.
rv -= (int) (2 * rv * (rand() / (RAND_MAX + 1.0)));
}
```
on line 1587 of src/checks.c (the second line in the if clause).
We're running haproxy 1.5.0
> lsb_release -rd
Description: Ubuntu 10.04.4 LTS
Release: 10.04
> uname -a
Linux 789b4b1b-
Changed in haproxy (Ubuntu): | |
importance: | Undecided → High |
tags: | added: lucid |
Thank you for taking the time to report this bug and helping to make Ubuntu better.
This seems like to be an upstream bug and if it can be confirmed to be then should be reported there, and we can backport any fix to Ubuntu as required.
However Lucid is EOL now. If this bug still affects a supported release, please change the bug status back to New.