Topic: Widget crashes upon unloading?

Hey, Chumby programmers!

So I'm looking into the crashing Kotaku widget (yes... finally...), and I was able to capture the log at the moment when it crashed. As far as I can tell, it seems like things are going okay until it tries to start up the next widget (Lifehacker, in my case), and then unload the old Kotaku widget. That's where things get really screwy.

Has anybody seen a crash like this before and know what it means? Is there something I'm not cleaning up correctly with the old widget? I'm kinda at a loss here.

2008-01-12 13:37:54 TRACE: Playing widget instance (current play mode "playing")
2008-01-12 13:37:54 TRACE: Loading widget instance into player
2008-01-12 13:37:54 TRACE: - loading widget movie "Lifehacker" from http://widgets.chumby.com/xml/movies/DCF38052-B90B-11DC-B120-001635C47868
2008-01-12 13:37:54 kStopSlave: slave -1 terminated
2008-01-12 13:37:54 ClientObject::StartSlaveCommon() starting slave 'http://widgets.chumby.com/xml/movies/DCF38052-B90B-11DC-B120-001635C47868'
2008-01-12 13:37:54 ClientObject::StartSlaveCommon() created new settings instance 0x00256d60 to be freed when slave dies
2008-01-12 13:37:54 ClientObject::ClientObject(this=0x0022fd80) asynch load = Y
2008-01-12 13:37:54 ClientObject(873) mmobj=0x40a925d4, PlatformPlayer=0x40a9ad98
2008-01-12 13:37:54 DisplayObject::<constructor>() UDMA is disabled, falling back to /dev/fb[#]
2008-01-12 13:37:54 FrameBuffer::GetFrameBuffer(0, 320X240) - adding ref to existing FrameBuffer instance 235a20 with ref count 1
2008-01-12 13:37:54 DisplayObject::<constructor> got fb=00235a20 for 320X240 idx=0 153600 bytes
2008-01-12 13:37:54 SoundObject::SoundObject[k](0x0027d060 mmobj=0x40a925d4): initializing audio, buffers=16, bpb=2048
2008-01-12 13:37:54 SoundObject::Add[k](this=0x0027d060, mmobj=0x40a925d4)
2008-01-12 13:37:54 StreamSoundObject::StreamSoundObject(this=0x0027d060, mmobj=0x40a925d4==0x40a925d4): setting up audio
2008-01-12 13:37:54 KeyboardObject::<ctor>(this=0x002461a0 mmobj=0x40a925d4) next=0x00230198
2008-01-12 13:37:54 ClientObject::Initialize() - successfully set vector font data for 24991 bytes
2008-01-12 13:37:54 KeyboardObject::AssureEventInterface() unable to open /sys/class/input/event1
2008-01-12 13:37:54 KeyboardObject::AssureEventInterface() unable to open /sys/class/input/event2
2008-01-12 13:37:54 ClientObject::LoadSwfToMemFromURL(http://widgets.chumby.com/xml/movies/DCF38052-B90B-11DC-B120-001635C47868) - instantiating http object, async=Y, timeout = 60 sec
2008-01-12 13:37:54 FrameBuffer::GetFrameBuffer(1, 320X240) - adding ref to existing FrameBuffer instance 2287e8 with ref count 1
2008-01-12 13:37:54 DisplayObject::SwitchActiveDisplay(1) previous frame buffer was 1
2008-01-12 13:37:54 kStartSlave: Object origin=(null), length = 0, interface count = 0, first=0x70143b18
2008-01-12 13:37:54 TRACE: - using widget timing:
2008-01-12 13:37:54 TRACE:  - timeout, 15000 ms
2008-01-12 13:37:54 TRACE: - running the widget for 15 seconds
2008-01-12 13:37:54 TRACE: - expires at Sat Jan 12 13:38:09 GMT-0800 2008
2008-01-12 13:37:54 TRACE: Setting advance timer handler
2008-01-12 13:37:54 ClientObject::WidgetLoadPump() loaded 18280 bytes
2008-01-12 13:37:54 ClientObject::WidgetLoadPump(http://widgets.chumby.com/xml/movies/DCF38052-B90B-11DC-B120-001635C47868) - successfully opened widget, elapsed time=0 sec
2008-01-12 13:37:54 ClientObject::SWFValidateCommon(url=http://widgets.chumby.com/xml/movies/DCF38052-B90B-11DC-B120-001635C47868,size=18280) validate result 1
2008-01-12 13:37:54 ClientObject::Initialize() - preloading 1 class libraries
2008-01-12 13:37:54 TRACE: preload.swf v1.02
2008-01-12 13:37:54 ClientObject::Initialize() successfully loaded 1 preinstalled libraries
2008-01-12 13:37:54 ClientObject::WidgetLoadPump(http://widgets.chumby.com/xml/movies/DCF38052-B90B-11DC-B120-001635C47868) validation result 1, deferred var count = 5
2008-01-12 13:37:54 ClientObject::MainLoop() - deleting instance 002a02c0 (deferred delete)
2008-01-12 13:37:54 ClientObject::~ClientObject(this=0x002a02c0) mmobj=0x40a2b5d4
2008-01-12 13:37:54 ClientObject::<dtor>() cancelled 0 sockets belonging to 0x40a2b5d4
2008-01-12 13:37:54 StreamObject::CancelURLStream(10) cancelling
2008-01-12 13:37:54 StreamObject::RequestForStreamID() can't find streamId 10
2008-01-12 13:37:54 StreamObject::CancelURLStream(10) not found
2008-01-12 13:37:54 SI_Object::SI_CancelImageRequest()
2008-01-12 13:37:54 ClientObject::ForPlayer() player not found 0x40a2b5d4
2008-01-12 13:37:54 ChumbySigAction() got SIGSEGV, exiting immediately!
2008-01-12 13:37:54 siginfo.si_errno=0, si_code=1 (SEGV_MAPERR)
2008-01-12 13:37:54 offending address is 0x00000030
2008-01-12 13:37:54 R0 (r0) = 0x0017fdb4 (1572276)
2008-01-12 13:37:54 R1 (r1) = 0x00022c28 (142376)
2008-01-12 13:37:54 R2 (r2) = 0x0000ffff (65535)
2008-01-12 13:37:54 R3 (r3) = 0x9af023d8 (-1695538216)
2008-01-12 13:37:54 R4 (r4) = 0x0003aa8c (240268)
2008-01-12 13:37:54 R5 (r5) = 0xffffffff (-1)
2008-01-12 13:37:54 R6 (r6) = 0x00000000 (0)
2008-01-12 13:37:54 R7 (r7) = 0x00042744 (272196)
2008-01-12 13:37:54 R8 (r8) = 0x01c18ff4 (29462516)
2008-01-12 13:37:54 R9 (r9) = 0x9af9faa8 (-1694893400)
2008-01-12 13:37:54 R10 (r10) = 0x9ac18ff4 (-1698590732)
2008-01-12 13:37:54 R11 (r11) = 0x40a33d98 (1084439960)
2008-01-12 13:37:54 R12 (r12) = 0x40a34294 (1084441236)

Re: Widget crashes upon unloading?

It looks like a problem with a cancelled HTTP request after the corresponding player instance has been destroyed.

I'll forward to the developer.  Thanks.

Re: Widget crashes upon unloading?

Duane wrote:

It looks like a problem with a cancelled HTTP request after the corresponding player instance has been destroyed.

I'll forward to the developer.  Thanks.

I am the developer. smile

So my widget works a little something like this...

a) Display the current story.
b) Attempt to load the image for the next story while the first one is still being shown.
c) Receive the image for the next story.
d) When the next story is ready to be displayed, show the image that I have loaded in the meantime.

So is the problem that if widget is getting destroyed somewhere between b) and c), bad things happen? Is there a crucial clean-up step that I'm neglecting?

Re: Widget crashes upon unloading?

No - I meant the developer at Chumby who maintains the Flash Lite Player.

Re: Widget crashes upon unloading?

Duane wrote:

No - I meant the developer at Chumby who maintains the Flash Lite Player.

Ohhh... I get ya.

Well, if it's something I need to fix, please let me know.

Thanks!

Re: Widget crashes upon unloading?

OK, it appears we fixed this particular bug a while back, so it will come along with one of the firmware updates.

Unfortunately, there's nothing you can do at the widget level.

Re: Widget crashes upon unloading?

Duane wrote:

OK, it appears we fixed this particular bug a while back, so it will come along with one of the firmware updates.

Unfortunately, there's nothing you can do at the widget level.

No worries. I'll just wait for the next firmware update and, assuming everything looks good, I'll make the widget public again. (Any idea when that might be, incidentally?)


--T