Help - Search - Members - Calendar
Full Version: foo_shuffle causes crash on exit
Hydrogenaudio Forums > Hosted Forums > foobar2000 > Support - (fb2k)
Wolf71
I can reproduce the following crash:

Go to shuffle control and set:

"history size = max" (so playback will stop when every track has been played)
"save = yes"

Apply the settings on a playlist and wait until the last track has been played in "shuffle" mode (foobar now says "stopped").

Now exit foobar and a crash results. What's annoying most was, when I restarted foobar all my configuration settings (several hours of work!) were gone since the crash corrupts the config file! mad.gif

Here is the failure report:

Illegal operation:
Code: C0000005h, flags: 00000000h, address: 78001A66h
Access violation, operation: write, address: 00000000h
Call path:
WinMain=>app_shutdown
This is the first crash logged by this instance.
Code bytes (78001A66h):
78001A26h: D2 0F 84 8A ED 00 00 33 C0 8A 44 24 08 57 8B F9
78001A36h: 83 FA 04 0F 82 6C ED 00 00 F7 D9 83 E1 03 0F 85
78001A46h: 53 ED 00 00 8B C8 C1 E0 08 03 C1 8B C8 C1 E0 10
78001A56h: 03 C1 8B CA 83 E2 03 C1 E9 02 0F 84 45 ED 00 00
78001A66h: F3 AB 85 D2 0F 85 3B ED 00 00 8B 44 24 08 5F C3
78001A76h: 55 8B EC 6A FF 68 88 22 03 78 68 6A BD 00 78 64
78001A86h: A1 00 00 00 00 50 64 89 25 00 00 00 00 83 EC 24
78001A96h: 53 56 57 89 65 E8 33 FF 39 3D 44 A6 03 78 75 26
Stack (0012FDA0h):
0012FD80h: 77881F55 77882528 FFFFFFFF 0544DBD0
0012FD90h: 77E9F6C9 00070000 00000000 054EDAA0
0012FDA0h: 00000005 00A52049 00000000 000000FF
0012FDB0h: FFDFFC28 007E9768 00000000 00000001
0012FDC0h: 00000000 FFDFFC28 FFDFFC28 00000000
0012FDD0h: 0012FDF0 00A51FA0 0012FE1C 00000002
0012FDE0h: 00000000 00A58BB8 0012FE64 00A58B68
0012FDF0h: 0012FE30 00A51F26 0012FE1C 00000002
0012FE00h: 00A58C04 0012FE64 00A555DA 0012FE1C
0012FE10h: 00000000 00000011 0000000E 00A57800
0012FE20h: 00A9B330 00000002 00000002 00000002
0012FE30h: 0012FE8C 00A55126 0012FE64 00401EDD
0012FE40h: 0012FE64 00000007 007EA998 00000000
0012FE50h: FFFFFFFF 0012FE80 780014CF 00000008
0012FE60h: 780197B2 004394B8 00A97008 00004000
0012FE70h: 00000000 00000002 00AAB0B0 00004000
0012FE80h: 000038C2 00000002 00AE0C78 0012FEA8
0012FE90h: 0040B2B1 00AE0C78 007EA998 00000000
0012FEA0h: 004394C4 00000000 0012FED4 00401E3A
0012FEB0h: 00401E4F 00AE0C78 00000000 0043946C
Registers:
EAX: FFFFFFFF, EBX: 00000000, ECX: 3FF7FF0A, EDX: 00000000
ESI: 007E9768, EDI: 00000000, EBP: 0012FDD0, ESP: 0012FDA0
Crash location: "msvcrt", loaded at 78000000h - 78045000h

Loaded modules:
foobar2000 loaded at 00400000h - 00452000h
ntdll loaded at 77880000h - 77903000h
KERNEL32 loaded at 77E70000h - 77F30000h
USER32 loaded at 77E00000h - 77E65000h
GDI32 loaded at 77F40000h - 77F7B000h
ole32 loaded at 77A40000h - 77B2F000h
RPCRT4 loaded at 77D20000h - 77D91000h
ADVAPI32 loaded at 79350000h - 793B2000h
COMCTL32 loaded at 71710000h - 71794000h
utf8api loaded at 10000000h - 1000D000h
comdlg32 loaded at 76B00000h - 76B3F000h
SHLWAPI loaded at 772A0000h - 77309000h
msvcrt loaded at 78000000h - 78045000h
SHELL32 loaded at 77580000h - 777CB000h
foo_albumlist loaded at 00800000h - 0080B000h
foo_console loaded at 00810000h - 00817000h
foo_diskwriter loaded at 00820000h - 00832000h
WINMM loaded at 77540000h - 77571000h
foo_dsp_extra loaded at 008C0000h - 008D5000h
foo_history loaded at 008E0000h - 008F5000h
foo_id3v2 loaded at 00900000h - 00930000h
MSVCP60 loaded at 780C0000h - 78121000h
foo_input_std loaded at 00930000h - 009CE000h
MSACM32 loaded at 773E0000h - 773F3000h
foo_masstag loaded at 009D0000h - 009E4000h
foo_output_std loaded at 009F0000h - 009F9000h
foo_out_dsound_ex loaded at 00A00000h - 00A09000h
DSOUND loaded at 51080000h - 510DD000h
VERSION loaded at 77810000h - 77817000h
LZ32 loaded at 75940000h - 75946000h
foo_out_ks loaded at 00A20000h - 00A2B000h
SETUPAPI loaded at 78310000h - 783A1000h
USERENV loaded at 791A0000h - 79202000h
foo_read_http loaded at 00A30000h - 00A39000h
WS2_32 loaded at 74FA0000h - 74FB4000h
WS2HELP loaded at 74F90000h - 74F98000h
foo_rgscan loaded at 00A40000h - 00A4D000h
foo_shuffle loaded at 00A50000h - 00A5B000h
foo_ui_std loaded at 00A60000h - 00A77000h
foo_vis_manager loaded at 00A80000h - 00A88000h
LgWndHk loaded at 00B90000h - 00B97000h
IMGHOOK loaded at 30000000h - 30047000h
LgMsgHk loaded at 00BD0000h - 00BDB000h
wdmaud loaded at 77530000h - 77538000h
msacm32 loaded at 773D0000h - 773D8000h
imagehlp loaded at 77910000h - 77933000h
DBGHELP loaded at 72970000h - 7299D000h

Stack dump analysis:
Address: 00A52049h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A51FA0h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A58BB8h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A58B68h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A51F26h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A58C04h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A555DAh, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A57800h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00A55126h, location: "foo_shuffle", loaded at 00A50000h - 00A5B000h
Address: 00401EDDh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 780014CFh, location: "msvcrt", loaded at 78000000h - 78045000h
Address: 780197B2h, location: "msvcrt", loaded at 78000000h - 78045000h
Address: 004394B8h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0040B2B1h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00401E3Ah, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00401E4Fh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0043946Ch, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 004125CAh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 004394BCh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00410FF1h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DB5h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DE0h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0043C320h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 77E9893Dh, location: "KERNEL32", loaded at 77E70000h - 77F30000h
Address: 77EC1F44h, location: "KERNEL32", loaded at 77E70000h - 77F30000h
Address: 77E72B18h, location: "KERNEL32", loaded at 77E70000h - 77F30000h
Address: 00438C81h, location: "foobar2000", loaded at 00400000h - 00452000h

Version info:
foobar2000 v0.8.3
UNICODE
lav-chan
I think i reported this bug a long time ago. The person's response (don't know if he was the actual developer, but it seemed like he was) was basically 'golly, it shouldn't do that!' and then the thread kind of died. For this reason and others i've just stopped using the shuffle control altogether. :/


edit:
Yeah, here it is.
Mr_Rabid_Teddybear
I've also reported this very bug a few months back without much happening. But I don't think Kode54 (the author) was able to reproduce, whitch makes it kind of hard to fix. But here I see at least two other people reporting the same. To repeat: Set history size to max, activate history saving & play the playlist in "shuffle" mode until it's finished (foobar2000 stopped - end of playlist). Then exit foobar2000 normally - you'll get a crash and a hanging foobar2000.exe process. Also foobar2000.cfg gets nuked - whitch is very annoying if you haven't got a backup. (Tip for Wolf71: Make a backup of config files after each modification - redoing 100.000 custom modifications are a pain in the ...)

Anyways: I haven't tested this for a long time; my solution was to reduce history size to approximately 99% - after that there's been no crash. Ofcourse this also means that it never reaches the end of playlist as it just wraps around when all files are played and continues (at history size max playback stops when all files in playlist have been played once).
lav-chan
Mine wasn't even set to maximum size and it still did that. I don't remember if it did it every single time, though. And i think once the play-back stopped you could prevent the crash by going into history preferences and resetting the history. (That's how i remember it, anyway. Try it out and see if it works.)

Anyway, at the time i just decided to write a batch file to copy my foobar configuration back over it whenever it crashed. Make a fix.bat and put in it: @copy C:\path\to\foobar2000.cfg.bak C:\path\to\foobar2000.cfg

(The path obviously depends on whether or not you've set it to have multiple users enabled.)

But yeah, if you absolutely must have shuffle, put that in system32 and Win+R 'fix' and that'll more or less work for you until the plug-in gets fixed, i guess....
Mr_Rabid_Teddybear
I've only experienced this when history size was set to max. And then it was 100% reproducable on my comp. After reducing history size to 99% the problem went away. And I use shuffle all the time. Hmmm. Strange stuff.

My crash reports from back then BTW: here and here
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.