upgrade of ceph in vivid breaks qemu-system-arm
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ceph (Fedora) |
Fix Released
|
Undecided
|
|||
ceph (Ubuntu) |
Fix Released
|
High
|
James Page | ||
Vivid |
Fix Released
|
High
|
James Page | ||
libguestfs (Ubuntu) |
Invalid
|
High
|
Unassigned | ||
Vivid |
Invalid
|
High
|
Unassigned |
Bug Description
seen in the libguestfs build logs, qemu-system-arm -help hangs indefinitely and the build has to be killed.
<doko> Program received signal SIGINT, Interrupt.
<doko> 0xb4121d46 in gettimeofday () at ../sysdeps/
<doko> 81 ../sysdeps/
<doko> (gdb) bt
<doko> #0 0xb4121d46 in gettimeofday () at ../sysdeps/
<doko> #1 0xb4a40772 in ?? () from /usr/lib/
<doko> #2 0xb6fe2216 in call_init (l=<optimized out>, argc=2, argv=0xbefff734, env=0xbefff740) at dl-init.c:78
<doko> #3 0xb6fe22a8 in _dl_init (main_map=
<doko> #4 0xb6fd7bf2 in _dl_start_user () from /lib/ld-
<doko> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
checked older toolchain versions, and qemu builds, all with the same result.
downgrading librados2 and librbd1 to 0.87-0ubuntu5 lets the qemu call succeed.
Setting the priority to, assuming we want a working qemu in vivid.
Changed in libguestfs (Ubuntu): | |
importance: | Undecided → High |
status: | New → Confirmed |
Changed in ceph (Ubuntu): | |
milestone: | none → ubuntu-15.03 |
Changed in libguestfs (Ubuntu): | |
milestone: | none → ubuntu-15.03 |
Changed in ceph (Ubuntu): | |
assignee: | nobody → Canonical Server Team (canonical-server) |
Changed in ceph (Ubuntu Vivid): | |
status: | Triaged → In Progress |
Changed in libguestfs (Ubuntu Vivid): | |
status: | Confirmed → Invalid |
Changed in ceph (Fedora): | |
importance: | Unknown → Undecided |
status: | Unknown → Fix Released |
Due to:
#elif defined( __powerpc_ _) || defined (__powerpc64__) /github. com/randombit/ botan/blob/ net.randombit. botan/src/ lib/entropy/ hres_timer/ hres_timer. cpp
// Based on:
// https:/
uint32_t lo = 0, hi = 0;
asm volatile("mftbu %0; mftb %1" : "=r" (hi), "=r" (lo));
return (((uint64_t)hi << 32) | lo);
#else
#warning No high-precision counter available for your OS/arch
return 0;
#endif
}
arm does not have a reliable high precision cpu cycles counter - return 0 was suggested from upstream - but looks like we need a better fallback.