Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crashes when displaying season on one series #1961

Closed
cewert opened this issue Oct 2, 2024 Discussed in #1960 · 15 comments · Fixed by #2034
Closed

Crashes when displaying season on one series #1961

cewert opened this issue Oct 2, 2024 Discussed in #1960 · 15 comments · Fixed by #2034
Labels
bug Something isn't working

Comments

@cewert
Copy link
Member

cewert commented Oct 2, 2024

I don't know if this should be an issue or not, but on one particular Series - Topper (1953) - jellyfin-roku crashes when I display the season list. This does not happen if viewing on a web browser. On Roku, if I click on Season 1 (the only season I have), it flashes the Season list momentarily then reverts to the Roku home screen. I have removed all .nfo and .jpg files and let it rebuild but no improvement.

I am running jellyfin v10.9.11 as a native install. I also have jellyfin V10.9.10 as a docker container. They access different media structures and both do the same with this series.

Here is my directory listing for Topper:

.:
backdrop2.jpg folder.jpg 'Season 01' tvshow.nfo

'./Season 01':
S01E12.mp4 S01E19.nfo S01E27-thumb.jpg S01E31.mp4
S01E12.nfo S01E19-thumb.jpg S01E28.mp4 S01E31.nfo
S01E12-thumb.jpg S01E20.mp4 S01E28.nfo S01E31-thumb.jpg
S01E14.mp4 S01E20.nfo S01E28-thumb.jpg S01E39.mp4
S01E14.nfo S01E20-thumb.jpg S01E29.mp4 S01E39.nfo
S01E14-thumb.jpg S01E22.mp4 S01E29.nfo S01E39-thumb.jpg
S01E17.mp4 S01E22.nfo S01E29-thumb.jpg season.nfo
S01E17.nfo S01E22-thumb.jpg S01E30.mp4
S01E17-thumb.jpg S01E27.mp4 S01E30.nfo
S01E19.mp4 S01E27.nfo S01E30-thumb.jpg

At an earlier stage I got an error in the logs like this for each image for this series:
[ERR] Cannot compute blurhash for "/media/streaming/jellyfin/TV_Shows/Topper (1953)/Season 01/Topper (1953) S01E39-thumb.jpg"

I have renamed all my .mp4's to simply be in the format: "SxxExx.mp4", as this is the format for most of my TV shows.

I turned on debugging and then tried to select this season on Roku but nothing relating to this showed up in the logs. Of course, I was accessing the logs from the web browser, as there is no provision AFAIK to do this from roku, but the log is a server log, and anything happening on roku would show up here, would it not?

Could this be a playback issue for Roku? Or could it be that one or more of the videos has some kind of flaw that is messing up the .nfo file(s)? I have not tried it yet, but might it help to pass each video through ffmpeg doing a straight copy of both audio and video?

Summing up, I don't think it's a server issue unless the files are messed up in some way that the web interface can handle but not jellyfin-roku. These files are public domain and downloaded fro archive.org.

Thanks for any help that can be provided.

I did see one pull request that could be related. I wasn't able to see any discussion that explained what this was all about, but my problem seems to be with only this series, because AFAIK this is the only one that does this.

@cewert cewert added the bug Something isn't working label Oct 2, 2024
@cewert
Copy link
Member Author

cewert commented Oct 2, 2024

@debmint it's possible #1951 fixes your problem but doesn't sound likely.

Sounds like we have two options. Download the videos and try to reproduce the error on our end or get you setup with a dev environment so you can see the debugging log after the app crashes which will hopefully tell us what is going on

@debmint
Copy link
Contributor

debmint commented Oct 3, 2024

@debmint it's possible #1951 fixes your problem but doesn't sound likely.

This was the pull request to which I was referring. It looks like this PR addresses a situation where all episode lists are affected, and mine are not - just this series AFAIK.

Sounds like we have two options. Download the videos and try to reproduce the error on our end or get you setup with a dev environment so you can see the debugging log after the app crashes which will hopefully tell us what is going on

I have one of my rokus set up with dev mode enabled, although someone with more experience might be able handle it better. Is logging better under dev environment enabled?

@debmint
Copy link
Contributor

debmint commented Oct 3, 2024

@debmint it's possible #1951 fixes your problem but doesn't sound likely.

Sounds like we have two options. Download the videos and try to reproduce the error on our end or get you setup with a dev environment so you can see the debugging log after the app crashes which will hopefully tell us what is going on

Last night I ran all the files through handbrake. Didn't try last night. When I ran jellyfin this morning, it seems that jellyfin had been updated. However, with the new files, there was no problem. To be sure the update hadn't fixed it, I started the docker version which used the unmodified files, and the problem was still there.

I diffed the directories and the only files that differed were tvshow.info. The only thing that might have mattered was that the modified files produced and tags. Adding these did not fix the problem.

I can provide a diff of the output of ffprobe of a modified and original video to show the differences in formats if that would help. However, it doesn't seem that this would matter. When it tries to display the season list, it does begin to show the screen, but immediately crashes. I can see a couple of episodes before it crashes.

@cewert
Copy link
Member Author

cewert commented Oct 4, 2024

Is logging better under dev environment enabled?

There are crash reports and debugging logs but only when you deploy using vscode(or use telnet but not recommended). You would need node/NPM, and vscode. If you want to give this a shot we have a guide (follow method 1) to use and you can hop in our matrix chat for help as well. This would be the best method because we already know you can reproduce the crash and 90% of the time a crash will give us a crashlog. Once we have that, figuring out the problem is usually easy.

@debmint
Copy link
Contributor

debmint commented Oct 5, 2024

There are crash reports and debugging logs but only when you deploy using vscode(or use telnet but not recommended). You would need node/NPM, and vscode.

I already have dev mode enabled. I contributed to the project a few years back. I believe I accessed the Roku via telnet.
I did have vscodium installed in previous installs, but I have reinstalled my system and don't have it. It almost seems to be easier to telnet.

If you want to give this a shot we have a guide (follow method 1) to use and you can hop in our matrix chat for help as well. This would be the best method because we already know you can reproduce the crash and 90% of the time a crash will give us a crashlog. Once we have that, figuring out the problem is usually easy.

I may give it a shot and see.\

BTW, I can keep both the dev and stable install on he system without conflict, can't I? Before, I uninstalled the stable app when I had the dev app installed.

@cewert
Copy link
Member Author

cewert commented Oct 5, 2024

That's great! Yea, use whatever you're most comfortable with. Grabbing the logs from the dev build is all that matters

I can keep both the dev and stable install on he system without conflict, can't I?

Yep, that's correct. You can have one channel sideloaded at all times that stays at the bottom of the channel list in addition to all your production channels installed. The jellyfin dev and production apps won't conflict

@debmint
Copy link
Contributor

debmint commented Oct 23, 2024

There are crash reports and debugging logs but only when you deploy using vscode(or use telnet but not recommended). You would need node/NPM, and vscode. If you want to give this a shot we have a guide (follow method 1) to use and you can hop in our matrix chat for help as well. This would be the best method because we already know you can reproduce the crash and 90% of the time a crash will give us a crashlog. Once we have that, figuring out the problem is usually easy.

I have finally gotten around to doing this. I narrowed it down to one file. I have 12 videos, and IIRC, all came from archive.org except for one, and this is probably it - and I cannot recall where I got this. I have created a branch on my fork (Topper_debug) and added a directory Topper with subdirs Topper_good and Topper_bad. Topper_good is from running the bad file through handbrake. This does not cause a crash. I included the .nfo files and the thumbnail for both files. The video files are over 200 Meg and github refuses these large files. Also in the top level of Topper, I included the last 70 lines of the Debug file. I think this would be all that is pertinent. I was not able to understand the error messages. If you would like to see if you can figure out the problem, feel free to check it out. the url is (https://github.com/debmint/jellyfin-roku)

If you need the original video, hopefully I can upload it somewhere. I checked out pastebin but it doesn't support this big a file unless you go pro.

@cewert
Copy link
Member Author

cewert commented Nov 8, 2024

Thanks for the debugging info. Pasting the crash log here. This looks like an easy one I'll look into it

Suspending threads...
Thread selected:  1*   ...nts/tvshows/TVListDetails.brs(102)                  m.videoCodec.text = tr("Video") + ": " + itemData.MediaSources[i].MediaStreams[0].DisplayTitle

Current Function:
094:          m.progressBackground.visible = false
095:          m.progressBar.visible = false
096:      end if
097:      ' Display current video_codec and check if there is more than one video to choose from...
098:      m.videoCodec.visible = false
099:      if isValid(itemData.MediaSources)
100:          for i = 0 to itemData.MediaSources.Count() - 1
101:              if item.selectedVideoStreamId = itemData.MediaSources[i].id and isValid(itemData.MediaSources[i].MediaStreams[0])
102:*                 m.videoCodec.text = tr("Video") + ": " + itemData.MediaSources[i].MediaStreams[0].DisplayTitle
103:                  SetupAudioDisplay(itemData.MediaSources[i].MediaStreams, item.selectedAudioStreamIndex)
104:                  exit for
105:              end if
106:          end for
Source Digest(s): 
pkg:    dev 2.2.1 bd419b9d Jellyfin
pkg: 632126 1.1.1 3660c933 libplayready

Type Mismatch. Operator "+" can't be applied to "String" and "Invalid". (runtime error &h18) in pkg:/components/tvshows/TVListDetails.brs(102)
Backtrace:
#0  Function itemcontentchanged() As Void
   file/line: pkg:/components/tvshows/TVListDetails.brs(102)
Local Variables:
global           Interface:ifGlobal
m                roAssociativeArray refcnt=2 count:12
item             roSGNode:TVEpisodeData refcnt=1
itemdata         roAssociativeArray refcnt=1 count:28
usersettings     roAssociativeArray refcnt=1 count:47
indexnumber      roString (2.1 was String) refcnt=1 val:"27. "
airdate          roDateTime refcnt=1
imageurl         roString refcnt=1 val:"http://192.168.50.11:8096/Items/5e99605a75747511391dc02c0cb9f338/Images/Primary?maxheight=250&"...
runtime          Integer val:28 (&h1C)
progresswidthinpixels <uninitialized>
i                Integer val:0 (&h0)
Threads:
ID    Location                                Source Code
 0[u] ??
 1*   ...nts/tvshows/TVListDetails.brs(102)                  m.videoCodec.text = tr("Video") + ": " + itemData.MediaSources[i].MediaStreams[0].DisplayTitle
  *selected   [u]unattached(not debuggable)

@cewert
Copy link
Member Author

cewert commented Nov 8, 2024

@debmint #2034 should hopefully fix your problem. Please give it a test if you have time. Here's build zip if you need it https://github.com/cewert/jellyfin-roku/actions/runs/11750922376?pr=2034

@debmint
Copy link
Contributor

debmint commented Nov 9, 2024 via email

@debmint
Copy link
Contributor

debmint commented Nov 9, 2024 via email

@cewert
Copy link
Member Author

cewert commented Nov 9, 2024

On startup, the movies are displayed in reverse alphabetical order. If I click "*" and go to Sort there is no menu for sorting. If I click on Sort and click again, the movies seem to be in random order. If I go into Options and click on Sort once, sometimes the order is again reverse alphabetical.

Is the problem the way they are sorted? I thought the problem was the app crash you posted on your fork here. That's the only thing my PR attempted to fix was the app crash from the jellyfin-debug.txt file.

@debmint
Copy link
Contributor

debmint commented Nov 10, 2024 via email

@cewert
Copy link
Member Author

cewert commented Nov 10, 2024

You made a separate issue for the Home Movie sorting issue #2023

The OP for this issue talked about the app crashing when you tried to view the list of episodes. That issue should be fixed by #2034. If not, please reopen this issue.

@cewert cewert closed this as completed Nov 10, 2024
@debmint
Copy link
Contributor

debmint commented Nov 11, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants