Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
malort
Level 7

Re: Crash & reboot from gridscreen, event data 8947848

Are you using a mixed-aspect-ratio grid? If so, I can confirm that it can crash/reboot the roku in the right conditions. It was always related to `m.SetVisibility(index, boolean)`.
0 Kudos
mbrakken
Level 7

Re: Crash & reboot from gridscreen, event data 8947848

"malort" wrote:
Are you using a mixed-aspect-ratio grid? If so, I can confirm that it can crash/reboot the roku in the right conditions. It was always related to `m.SetVisibility(index, boolean)`.

Yeah, I probably should have stated that up top; I forgot that the mixed-aspect-ratio grid particularly particular. :\

I woke up this morning thinking that may be the problem, and sure enough. When I just changed it to a flat-movie grid, it behaves without issue.

With the m-a-r grid, updating row visibility triggers an roGridScreenEvent (isListItemFocused, with the out of band index and data values), while updating visibility on the flat-movie grid doesn't trigger any events.

@malort, did you find a way around the crash, or did you abandon the m-a-r grid?

"renojim" wrote:
I just bounds check the results and do nothing if the results make no sense.

Yeah, I was isolating these results, but still had the crash.

Also @TheEndless, sorry I haven't gotten some sample code together. I spent last evening refactoring and haven't finished throwing together the example. I suspect now that any mixed-aspect grid will replicate, but still want to test that with a simple example.

Thanks all.
0 Kudos
malort
Level 7

Re: Crash & reboot from gridscreen, event data 8947848

I did not find any clean workaround. I did find that stacking a screen on top before toggling visibility could help, but obviously that is not clean at all.

This was in my notes and it's crazy
* stack a new screen on top ( dialog or another gridscreen )
* set the visible row to false ( or opposite hidden to visible )
* sleep 500ms
* set list item focused to a row that is invalid, I.E. row 999, index 0

I should also not, that I believe I was able to still reboot the roku randomly, even including the crazy steps above. The only foolproof way to not reboot the roku, is to use placeholders for empty rows (never hide), again, not optimal.

@TheEndless
Here is a modified simplegrid to reproduce the issue: https://www.dropbox.com/s/j265idjokbf9h ... t.zip?dl=0


"mbrakken" wrote:
"malort" wrote:
Are you using a mixed-aspect-ratio grid? If so, I can confirm that it can crash/reboot the roku in the right conditions. It was always related to `m.SetVisibility(index, boolean)`.

Yeah, I probably should have stated that up top; I forgot that the mixed-aspect-ratio grid particularly particular. :\

I woke up this morning thinking that may be the problem, and sure enough. When I just changed it to a flat-movie grid, it behaves without issue.

With the m-a-r grid, updating row visibility triggers an roGridScreenEvent (isListItemFocused, with the out of band index and data values), while updating visibility on the flat-movie grid doesn't trigger any events.

@malort, did you find a way around the crash, or did you abandon the m-a-r grid?

"renojim" wrote:
I just bounds check the results and do nothing if the results make no sense.

Yeah, I was isolating these results, but still had the crash.

Also @TheEndless, sorry I haven't gotten some sample code together. I spent last evening refactoring and haven't finished throwing together the example. I suspect now that any mixed-aspect grid will replicate, but still want to test that with a simple example.

Thanks all.
0 Kudos
mbrakken
Level 7

Re: Crash & reboot from gridscreen, event data 8947848

Gah. I think I figured out my problem, and now I feel silly...

Since I'm using mixed-aspect-ratio grid, I need to call screen.SetDescriptionVisible(bool) on every isListItemFocused focused event. I thought I was capturing these strange values to keep setDescription from being called, but apparently I wasn't. There isn't a thing to set a description visible on, so *boom*.

@malort, in the code you posted, changing

if msg.isListItemFocused() then
print"list item focused | current show = "; msg.GetIndex()
' changing mixed rows causes the description (BoB) to be hidden
screen.SetDescriptionVisible(true)

to

if msg.isListItemFocused() then
print"list item focused | current show = "; msg.GetIndex()
if msg.GetIndex() >= 20 AND msg.getData() > 80000
print "strange message"
else
' changing mixed rows causes the description (BoB) to be hidden
screen.SetDescriptionVisible(true)

should fix it. It did for my channel, at least.

I feel like I have egg on my face. Thanks @TheEndless, @renojim, and @malort for your time. Lessons learned.
0 Kudos
TheEndless
Level 9

Re: [Solved] Crash & reboot from gridscreen, event data 8947

FWIW, I just ran into this exact same issue on a different gridscreen type (flat-16x9), on a channel that has worked fine for years. The crazy item index event seems to be a new introduction in the 6.1 firmware, and only seems to happen on the Roku 3.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos