#8430: [kernel] mplayer segfaults in a loop ---------------------------+------------------------------ Reporter: diver | Owner: bonefish Type: bug | Status: new Priority: normal | Milestone: R1 Component: System/Kernel | Version: R1/Development Keywords: | Blocked By: Blocking: | Has a Patch: 0 Platform: All | ---------------------------+------------------------------ This is hrev43901 gcc2hybrid. [http://dl.dropbox.com/u/15787359/mplayer.zip mplayer binary] (8MB) After running '''mplayer !smb://share/video.avi''' (it doesn't matter if video.avi actually exists or not!) mplayer crashes. After that GUI and cursor becomes extremely sluggish and unresponsive. [[BR]][[BR]] ProcessController shows that mplayer uses 50% of cpu, the other 50% is used by '''syslog_daemon'''. [[BR]] I had changed it's priority from '''normal ![10]''' to '''lowest active ![1]''' and GUI with cursor became normal again. I can see in Tracker that syslog gets constantly overwritten. The following message repeats zillion times in syslog: {{{ vm_soft_fault: va 0x0 not covered by area in address space vm_page_fault: vm_soft_fault returned error 'Bad address' on fault at 0x0, ip 0x0, write 0, user 1, thread 0x313 vm_page_fault: thread "mplayer" (787) in team "mplayer" (787) tried to read address 0x0, ip 0x0 ("???" +0x0) }}} Then I debugged mplayer thread from ProcessController: {{{ [...] [Switching to team /boot/apps/Mplayer/mplayer smb://share/video.avi (299) thread mplayer (299)] 0x00000000 in ?? () (gdb) bt #0 0x00000000 in ?? () #1 0x03cd09ee in ucnv_close () from /boot/system/lib/gcc4/libicuuc.so.48.1.1 #2 0x03de1e67 in BPrivate::Libroot::ICUThreadLocalStorageValue::~ICUThreadLocalStorageValue () from /boot/system/lib/gcc4/libroot-addon-icu.so #3 0x03ddf0e9 in BPrivate::Libroot::ICULocaleBackend::_DestroyThreadLocalStorageValue () from /boot/system/lib/gcc4/libroot-addon-icu.so #4 0x018bb892 in __pthread_key_call_destructors () from /boot/system/lib/gcc4/libroot.so #5 0x018bad18 in __pthread_destroy_thread () from /boot/system/lib/gcc4/libroot.so #6 0x018ae222 in _thread_do_exit_work () from /boot/system/lib/gcc4/libroot.so #7 0x0190f0b0 in exit () from /boot/system/lib/gcc4/libroot.so #8 0x0030ab39 in rm_osd_msg () [...] #14 0x00b81e4f in _tevent_req_notify_callback () [...] #30 0x01000000 in ff_codec_caf_tags () [...] #43 0x00eabcd1 in tdb_allocate () #44 0x03de1e67 in BPrivate::Libroot::ICUThreadLocalStorageValue::~ICUThreadLocalStorageValue () from /boot/system/lib/gcc4/libroot-addon-icu.so #45 0x03ddf0e9 in BPrivate::Libroot::ICULocaleBackend::_DestroyThreadLocalStorageValue () from /boot/system/lib/gcc4/libroot-addon-icu.so #46 0x018bb892 in __pthread_key_call_destructors () from /boot/system/lib/gcc4/libroot.so #47 0x018bad18 in __pthread_destroy_thread () from /boot/system/lib/gcc4/libroot.so #48 0x018ae222 in _thread_do_exit_work () from /boot/system/lib/gcc4/libroot.so #49 0x0190f0b0 in exit () from /boot/system/lib/gcc4/libroot.so #50 0x0030c0a2 in exit_player_with_rc () #51 0x012be558 in ?? () (gdb) }}} mplayer binary is from 20.05.2011.[[BR]] Some pointers from DeadYak: {{{ DeadYak looks like it's trapping segfaults DeadYak that might explain the issue, if it's doing that in a loop it's going to be nailing the VM like crazy DeadYak file that as a kernel bug and assign to bonefish please...including screenshots DeadYak looks like mplayer installs a segfault handler and then something else goes wrong DeadYak possibly during thread cleanup DeadYak but right now it looks more like a VM bug DeadYak or a combination of a design issue in the VM + bad behavior somewhere DeadYak also, if that behavior doesn't happen in older revs, it'd be interesting to know when it started DeadYak I suspect this isn't a new problem though }}} -- Ticket URL: <http://dev.haiku-os.org/ticket/8430> Haiku <http://dev.haiku-os.org> Haiku - the operating system.