Red Hat Bugzilla – Bug 475131
Assertion "i->thread_info.rewrite_nbytes == 0' in null sink.
Last modified: 2009-02-17 07:21:40 EST
Description of problem:
OK, I'm trying something, ANYTHING, to getting jack working with timidity. I've already submitted a bug for that. So i tried to use fluidsynth. Installed fluidsynth. Start it up. It starts jack. Yay. But it won't connect to pulseaudio. Now, when I really hated pulseaudio (still not a fan of it) and didn't need it, it started with my X server. But now, no such luck.
So I kill jackd and lashd (guess what, it won't start while jack is running). Start pulseaudio. Then start fluidsynth. It starts jack, tries to connect to pulseaudio, and pulseaudio gives me a nice, fat assertion error.
Now you can't tell me THIS isn't a bug, because 100% of the time, if something triggers an assertion error, it's a *bug*.
The assertion error is:
>E: sink_input.c: Assertion "i->thread_info.rewrite_nbytes == 0' failed at pulsecore/sink-input.c:1150, function pa_sink_input_request_rewind(). Aborting.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Start pulseaudio
2. Start fluidsynth
3. Watch the fur fly.
Nothing happens except for a nice assertion error.
Sound comes out of the speakers.
If PA finds not other sound card it uses the NULL driver, which is not very well tested and hist that assert.
*** Bug 470277 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of bug 472757 ***
I saw this same assertion yesterday when I broke away from X to a VT and back again, as per bug 468969
Presumably there's a race where pulseaudio goes too quickly when coming back into X and finds the NULL driver.
It's a very infrequent problem, this is just an FYI.
I agree with the poster in 468969 though - it would be nice if pulseaudio were either crash-proof or restarted itself - could it be made so that:
pulseaudio - forks and watches child, restarts if it dies
\- pulseaudio - actual sound-processing child