Comment 7 for bug 502375

Revision history for this message
João Ricardo Lourenço (jorl17) wrote : Re: Wine randomly cannot initialize sound

This is a serious problem which has been laying around for too long. If you, like myself, lurk around the WineHQ forums and AppDB, you will see MANY logs with the "mmap() failed: Cannot allocate memory" message. It seems, though, that these users do not care about it, probably because Wine ends up defaulting to direct hardware access, giving them sound if their soundcard is free.

I, however, have serious issues with this one, and have ran several tests to try and understand where the HELL this happens.

From my testing, the line "mmap() failed: Cannot allocate memory" dictates the problem. This happens with the ALSA plugin as well as with the Pulse plugin and does not seem to revert unless the app (wine) is restarted. In my tests, I forced Wine's drivers to retry running the code that fails to see if "mmap() failed" would go away. It never does.

With the ALSA driver, I was able to trace the error to this line of code code:

"rc = snd_pcm_open(&pcm, pcmname, SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK)"

inside the ALSA_AddUserSpecifiedDevice(). This happens when I specify the PCM device for Wine to use in the registry.

Now what I CAN'T figure out is what exactly outputs the mmap() function. Is it a library? Is it pulse? Something in the kernel? A module? I don't FREAKING KNOW, and that's driving me nuts.

I've checked out the code for both ALSA and Pulse to no avail, I cannot see if the code is in either. Who was the moron that coded that message and forgot to add other useful tracing? Who was it that made my recent days turn into bloody hell?

I suggest people help debugging this issue since I can't clearly do it myself. I can also tell you that this doesn't seem to have anything to do with Flash or with the crackling sound. The latter is another issue which can be (partially) solved by adding default-fragment-size-msec = 25 to Pulse's daemon.conf (in my case).

I would be grateful if anybody -- anyone -- would try and help to fix this issue, because it is making Ubuntu users struggle with Wine. This will not help Ubuntu in the long run, as it is CLEARLY an issue that was not present in 8.10 (which was my last decent working Ubuntu Release...). What we need to find is what application or library is emitting the god-damned mmap() message.

Thanks, my apologies for being this angry,

Jorl17