#6637: QEMU triggers a segment violation in BPrivate::superblock::superblock() --------------------------------+------------------------------------------- Reporter: andreasf | Owner: axeld Type: bug | Status: new Priority: normal | Milestone: R1 Component: System/libroot.so | Version: R1/Development Resolution: | Keywords: Blocked By: | Has a Patch: 0 Platform: x86 | Blocking: --------------------------------+------------------------------------------- Description changed by andreasf: Old description: > I get the following crash when running QEMU system emulation on r38695. > > {{{ > [Switching to team /boot/common/bin/qemu-system-ppc /dev/null -nographic > (15566) thread qemu-system-ppc (15566)] > 0x00c48000 in BPrivate::superblock::superblock () > from /boot/system/lib/libroot.so > (gdb) bt > #0 0x00c48000 in BPrivate::superblock::superblock () > from /boot/system/lib/libroot.so > #1 0x00c48692 in BPrivate::superblock::makeSuperblock () > from /boot/system/lib/libroot.so > #2 0x00c48fe8 in BPrivate::threadHeap::malloc () > from /boot/system/lib/libroot.so > #3 0x00c49ce4 in calloc () from /boot/system/lib/libroot.so > #4 0x00259f84 in qemu_mallocz () > #5 0x00291d4d in readline_init () > #6 0x00244355 in monitor_init () > #7 0x002b0f9d in qemu_chr_open () > #8 0x0039d144 in qemu_set_fd_handler () > #9 0x0039c0cd in qemu_powerdown_requested () > #10 0x00000000 in ?? () > #11 0x7ffeef68 in ?? () > #12 0x0039c09e in qemu_powerdown_requested () > #13 0x0039d1d0 in qemu_set_fd_handler () > Previous frame inner to this frame (corrupt stack?) > (gdb) > }}} > > mmlr was able to work around this by using areas for sizes >= 1 MiB > instead. A simple test program {{{calloc}}}'ing, e.g., 256 MiB works just > fine though. New description: I get the following segment violation when running QEMU system emulation on r38695. {{{ [Switching to team /boot/common/bin/qemu-system-ppc /dev/null -nographic (15566) thread qemu-system-ppc (15566)] 0x00c48000 in BPrivate::superblock::superblock () from /boot/system/lib/libroot.so (gdb) bt #0 0x00c48000 in BPrivate::superblock::superblock () from /boot/system/lib/libroot.so #1 0x00c48692 in BPrivate::superblock::makeSuperblock () from /boot/system/lib/libroot.so #2 0x00c48fe8 in BPrivate::threadHeap::malloc () from /boot/system/lib/libroot.so #3 0x00c49ce4 in calloc () from /boot/system/lib/libroot.so #4 0x00259f84 in qemu_mallocz () #5 0x00291d4d in readline_init () #6 0x00244355 in monitor_init () #7 0x002b0f9d in qemu_chr_open () #8 0x0039d144 in qemu_set_fd_handler () #9 0x0039c0cd in qemu_powerdown_requested () #10 0x00000000 in ?? () #11 0x7ffeef68 in ?? () #12 0x0039c09e in qemu_powerdown_requested () #13 0x0039d1d0 in qemu_set_fd_handler () Previous frame inner to this frame (corrupt stack?) (gdb) }}} mmlr was able to work around this by using areas for sizes >= 1 MiB instead. A simple test program {{{calloc}}}'ing, e.g., 256 MiB works just fine though. -- -- Ticket URL: <http://dev.haiku-os.org/ticket/6637#comment:1> Haiku <http://dev.haiku-os.org> Haiku - the operating system.