Opened 14 years ago
Last modified 4 years ago
#7502 assigned bug
[kernel] implement user Local Descriptor Table
Reported by: | diver | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | R1.1 |
Component: | System/Kernel | Version: | R1/Development |
Keywords: | kernel crash matroska LDT wine | Cc: | diger |
Blocked By: | Blocking: | #7585 | |
Platform: | All |
Attachments (1)
Change History (18)
by , 14 years ago
Attachment: | IMG_0729.JPG added |
---|
comment:1 by , 14 years ago
comment:2 by , 14 years ago
It is reproducible since at least 2010/08/17. I don't know weather it worked before.
comment:3 by , 14 years ago
Also interesting is that if I force another codec haiku doesn't crash
mplayer -vc ffvc1 Dom.u.ozera.2006.VC-1.HDDVDRemux.1080p.mkv
comment:4 by , 14 years ago
[mkv] Track ID 1: video (V_MS/VFW/FOURCC), -vid 0 [mkv] Track ID 2: audio (A_AC3) "AC3 5.1 384 kbps Dubl", -aid 0, -alang rus [mkv] Track ID 3: audio (A_AC3) "AC3 at 448 kbps DVO", -aid 1, -alang rus [mkv] Track ID 4: audio (A_DTS) "DTS at 768 kbps MVO", -aid 2, -alang rus [mkv] Track ID 5: audio (A_AC3) "AC3 5.1 640 kbps", -aid 3, -alang eng [mkv] Track ID 6: audio (A_AC3) "AC3 2.0 192 kbps", -aid 4, -alang eng [mkv] Track ID 7: subtitles (S_TEXT/UTF8), -sid 0, -slang rus [mkv] Track ID 8: subtitles (S_TEXT/UTF8), -sid 1, -slang eng [mkv] Will play video track 1. Matroska file format detected. VIDEO: [WVC1] 1920x1080 0bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s) open: No such file or directory [MGA] Couldn't open: /dev/mga_vid open: No such file or directory [MGA] Couldn't open: /dev/mga_vid [VO_TDFXFB] Can't open /dev/fb0: Permission denied. [VO_3DFX] Unable to open /dev/3dfx. [vdpau] Error when calling vdp_device_create_x11: 1 ========================================================================== Opening video decoder: [dmo] DMO video codecs Win32 LoadLibrary failed to load: /usr/lib/codecs/wvc1dmod.dll IMediaObject ERROR: 0x83fd101 could not open DMO DLL (0x0 : 0) Failed to create DMO filter ERROR: Could not open required DirectShow codec wvc1dmod.dll. You need to upgrade/install the binary codecs package. Go to http://www.mplayerhq.hu/dload.html VDecoder init failed :( Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [ffvc1] vfm: ffmpeg (FFmpeg WVC1) ========================================================================== ========================================================================== Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000) Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3) ==========================================================================
comment:6 by , 13 years ago
Very curious. It looks like a crash in mplayer that is wrongly categorized as a kernel crash. I significantly changed the thread and team locking in hrev42116. Please retest with that or a newer revision.
comment:8 by , 13 years ago
Summary: | [kernel] panics upon opening 11Gb matroska file in mplayer → [kernel] panics upon opening matroska file in mplayer |
---|
I've split that video using this command in linux:
mkvmerge Dom.u.ozera.2006.VC-1.HDDVDRemux.1080p.mkv -o output.mkv --split timecodes:00:00:00,00:1:00 --split-max-files 3
One of the resulting file is 100mb in size still causes the same KDL in hrev42870.
So most likely it is not related to file size.
comment:9 by , 13 years ago
I think that what happens is that for this particular file format mplayer tries to use win32 codec wvc1dmod.dll and tries to load it from some directory which doesn't exist. Whereas when using -vc ffvc1 argument mplayer uses built-in codec and this crash doesn't happen.
#7585 describes the same thing when invoking mplayer with some invalid path crashes kernel the same way.
comment:10 by , 13 years ago
Since it crashes in Setup_LDT_Keeper() where it tries to set up a user LDT, it is quite possible that it messes with something we neither disallow nor support. Changing the decoder will likely cause it not to use that particular setup. In any case we either need to disable support for setting user LDTs if they cause such problems or, better, support them properly.
comment:11 by , 13 years ago
Just For Reference: libmpcodecs uses Setup_LDT_Keeper() from ldt_keeper.c.
comment:12 by , 13 years ago
Cc: | added |
---|
comment:13 by , 13 years ago
Keywords: | LDT added |
---|---|
Summary: | [kernel] panics upon opening matroska file in mplayer → [kernel] implement user Local Descriptor Table |
comment:14 by , 12 years ago
Keywords: | wine added |
---|
I have tricked Wine to run far enough to tell me it misses LDT support on Haiku. Code is at libs/wine/ldt.c internal_set_entry Seems to be the same bug.
comment:15 by , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:16 by , 4 years ago
Both 32 and 64 bit Wine versions requires LDT support. NtCurrentTeb (returns TIB that is used for thread specific data) use FS register for 32 bits and GS register for 64 bits. Code is inlined so changing storage method is not possible. I tried to build 64 bit Wine by stubbing LDT code and it crashes at start.
comment:17 by , 4 years ago
Milestone: | R1 → R1.1 |
---|
The stack trace looks curious (like a regular userland page fault). This is reproducible? Is it a recent regression? If so, can you tell when it still worked?