Page 3 of 3

Re: Freezing in Ubuntu Lucid

Posted: Fri Dec 17, 2010 9:37 am
by markhadman
Hi,
I have the same (I think) problem -the game freezes after 30-90 mins of play. Video freezes first, then audio stutters/loops for a bit then dies. This is true for both OSS and Alsa options, I'm afraid, no difference as far as I can tell (I don't have Pulse audio on my Arch system so I can't test that option).

(On a related note - since I've paid for the game through Humble Indie Bundle, how do I get updates & bug fixes?)

Re: Freezing in Ubuntu Lucid

Posted: Wed Dec 22, 2010 12:55 pm
by jackdone
Apparently I was lucky enough to change the engine sound of the ALSA sound device is "1" in my /. Osmos / config.cfg. Played about 20 minutes and had no problems. This binary version. This trick is really good.

Re: Freezing in Ubuntu Lucid

Posted: Wed Dec 22, 2010 5:47 pm
by eddybox
@markhadman: once we have a solid fix we'll update the version on the download page of the Humble Bundle as well. :)

Re: Freezing in Ubuntu Lucid

Posted: Sat Dec 25, 2010 2:50 am
by achurch
I've run into this problem a few times now myself (in my case, on a 32-bit Gentoo system). I took the liberty of pulling it up in GDB and found something that struck me as odd:

Code: Select all

(gdb) bt
#0  0xb7815424 in __kernel_vsyscall ()
#1  0xb72c9746 in gettimeofday () from /lib/libc.so.6
#2  0x0809a2d1 in ?? ()
#3  0x0809a307 in ?? ()
#4  0x0808196f in ?? ()
#5  0xb7255be6 in __libc_start_main () from /lib/libc.so.6
#6  0x0804c211 in ?? ()
(gdb) finish
Run till exit from #0  0xb7815424 in __kernel_vsyscall ()
0xb72c9746 in gettimeofday () from /lib/libc.so.6
(gdb) finish
Run till exit from #0  0xb72c9746 in gettimeofday () from /lib/libc.so.6
0x0809a2d1 in ?? ()
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x809a2b1 to 0x809a2f1:
[...]
   0x0809a2c8:  lea    -0x10(%ebp),%eax
   0x0809a2cb:  push   %eax
   0x0809a2cc:  call   0x804ba70 <gettimeofday@plt>
=> 0x0809a2d1:  imul   $0xf4240,-0x10(%ebp),%eax
   0x0809a2d8:  add    -0xc(%ebp),%eax
[...]
End of assembler dump.

(So this function is just a wrapper for gettimeofday() that returns the current time in microseconds.)

Code: Select all

(gdb) nexti
0x0809a2d8 in ?? ()
(gdb) nexti
0x0809a2db in ?? ()
(gdb) p/x $eax
$1 = 0x8198e52a

(That's the current time value. Finishing the function and going a little farther:)

Code: Select all

(gdb) finish
(gdb) nexti
(gdb) nexti
(gdb) nexti
0x0809a30d in ?? ()
(gdb) x/i $pc
=> 0x809a30d:   mov    (%eax),%eax
(gdb) nexti
0x0809a30f in ?? ()
(gdb) p/x $eax
$2 = 0x7fffdea5
(gdb) x/i $pc
=> 0x809a30f:   sub    %eax,(%ebx)

(Here EBX is pointing to the microseconds value calculated above, 0x81...)

This is what caught my attention: there's what looks like a reference time value right at the upper limit of a 32-bit signed integer being subtracted from the current time value. Is there any chance this might be an integer overflow issue?

EDIT: I was able to get the game to continue running by waiting 2^31 microseconds for the 32-bit counter to roll over, then resetting the reference value loaded from EAX above with the current time pointed to by EBX.

Re: Freezing in Ubuntu Lucid

Posted: Thu Dec 30, 2010 6:12 am
by Meal Worms
Thanks for the detective-work achruch. Sure does sounds like overflow. More soon...

Dave

Re: Freezing in Ubuntu Lucid

Posted: Sat Jan 01, 2011 2:16 pm
by Meal Worms
Hey folks,

Great news: with the help of achurch's detective work, I've tracked down and fixed the Linux freeze bug. Anyone who is interested in verifying the fix is welcome to get in touch with me at daveburke at hemispheregames.com to try out the binary. In the mean time, we're packaging up a patch containing fixes for the freezing and font issues and will be rolling out soon.

Cheers all,
Dave

Re: Freezing in Ubuntu Lucid

Posted: Fri Jan 07, 2011 3:16 pm
by wizkid
Great to hear there's a fix. My copy has been locking up within a few minutes now that I'm past the intro levels. I'd like to get a copy of the updated version, because it's locking up my system to the point I have to reboot. Blech!

Re: Freezing in Ubuntu Lucid

Posted: Fri Jan 07, 2011 3:29 pm
by Meal Worms
wizkid, ping me at daveburke at hemispheregames dot com citing this thread and I'll hook you up.

Dave

Re: Freezing in Ubuntu Lucid

Posted: Tue Jan 11, 2011 4:05 pm
by e2los
Meal Worms wrote:wizkid, ping me at daveburke at hemispheregames dot com citing this thread and I'll hook you up.

Dave


I've sent you an email as well... Not had to reboot myself, but the game is pretty much unplayable due to the freezing in ubuntu 10.10 and debian squeeze 32bit anyway.

Re: Freezing in Ubuntu Lucid

Posted: Thu Jan 13, 2011 12:35 pm
by Meal Worms
FYI, everyone who's run the new executable has found it to fix the freeze, so we're going ahead with the patch! More details soon... ;-)

Thanks all,
Dave