Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Crash when parsing multi-cd album
28-04-2013, 01:16
Post: #1
Crash when parsing multi-cd album
Hi Simon,

I've just added a new 5-CD album, all flac, and MinimServer crashes with this call stack:

java.lang.NullPointerException
at com.minimserver.Server.constructAlbum(Server.java:3792)
at com.minimserver.Server.constructMergedAlbums(Server.java:2634)
at com.minimserver.Server.doStart(Server.java:1467)
at com.minimserver.Server.start(Server.java:382)
at org.jminim.core.ContextImpl.startComponent(ContextImpl.java:156)
at org.jminim.core.ContextImpl.start(ContextImpl.java:84)
at org.jminim.core.RootContextImpl.startComponent(RootContextImpl.java:36)
at org.jminim.core.ContextImpl.start(ContextImpl.java:84)
at org.jminim.core.RuntimeImpl.run(RuntimeImpl.java:398)
at org.jminim.core.LauncherImpl.run(LauncherImpl.java:681)
at org.jminim.core.LauncherImpl.launch(LauncherImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav​a:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jminim.launch.Launcher.launch(Launcher.java:64)
at com.minimserver.launch.LaunchServer.main(LaunchServer.java:23)
MinimServer error: now stopped, use 'restart' or 'exit'

--------------

If I remove the album, clean up the cache and restart Minim, it works fine, so it's definitely this album.
I'm not sure what's wrong with it though..

There doesn't seem to be anything in the logs (with debug level enabled) that points to this album (the album logged before the exception is not the one that is causing the problem.):

....
....
12:09:45.375 main: album=Piano - Bach Haydn Schumann singleArtist=Alexis Weissenberg - piano
java.lang.NullPointerException
at com.minimserver.Server.constructAlbum(Server.java:3792)
at com.minimserver.Server.constructMergedAlbums(Server.java:2634)
at com.minimserver.Server.doStart(Server.java:1467)
at com.minimserver.Server.start(Server.java:382)
at org.jminim.core.ContextImpl.startComponent(ContextImpl.java:156)
at org.jminim.core.ContextImpl.start(ContextImpl.java:84)
at org.jminim.core.RootContextImpl.startComponent(RootContextImpl.java:36)
at org.jminim.core.ContextImpl.start(ContextImpl.java:84)
at org.jminim.core.RuntimeImpl.run(RuntimeImpl.java:398)
at org.jminim.core.LauncherImpl.run(LauncherImpl.java:681)
at org.jminim.core.LauncherImpl.launch(LauncherImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav​a:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jminim.launch.Launcher.launch(Launcher.java:64)
at com.minimserver.launch.LaunchServer.main(LaunchServer.java:23)
12:09:45.377 main: exception while starting component minimserver in context context0
12:09:45.377 main: >>> EVENT >>> componentError: minimserver
12:09:45.377 main: ServerControl: componentError event for minimserver
MinimServer error: now stopped, use 'restart' or 'exit'
12:09:45.377 main: Monitor: componentError event for minimserver in context context0
12:09:45.377 main: stopping component minimserver in context context0
12:09:45.377 main: >>> EVENT >>> componentStopping: minimserver
12:09:45.377 main: ServerControl: componentStopping event for minimserver
12:09:45.377 main: Monitor: componentStopping event for minimserver in context context0
12:09:45.377 main: stopping MinimServer
12:09:45.378 main: disposing http service
12:09:45.378 main: disposing HTTPContext
12:09:45.378 main: removing contextRoot minimserver
12:09:45.378 main: HTTPService: removing path minimserver
12:09:45.378 main: HTTPService: found handler for minimserver
12:09:45.378 main: HTTPService: closing server socket
12:09:45.378 main: http service disposed
12:09:45.378 main: closing cacheData[0]
12:09:45.378 main: cacheData[0] closed
12:09:45.378 main: stopped MinimServer
12:09:45.378 main: stopped component minimserver in context context0
12:09:45.378 main: >>> EVENT >>> componentStopped: minimserver
12:09:45.378 main: ServerControl: componentStopped event for minimserver
12:09:45.378 main: Monitor: componentStopped event for minimserver in context context0
12:09:45.378 main: error while starting context context0
12:09:45.378 main: stopping context context0
12:09:45.378 main: >>> EVENT >>> contextStopping: context0
12:09:45.378 main: ServerControl: contextStopping event for context0
12:09:45.378 Thread-7: HTTPService: server socket accept exception: Socket closed
12:09:45.378 Thread-7: HTTPService: exiting server thread Thread[Thread-7,5,main]
12:09:45.378 main: Monitor: contextStopping event for context0
12:09:45.378 main: stopping component minimserver in context context0
12:09:45.378 main: >>> EVENT >>> componentStopping: minimserver
12:09:45.378 main: ServerControl: componentStopping event for minimserver
12:09:45.378 main: Monitor: componentStopping event for minimserver in context context0
12:09:45.378 main: stopping MinimServer
12:09:45.378 main: closing cacheData[0]
12:09:45.378 main: cacheData[0] closed
12:09:45.378 main: stopped MinimServer
12:09:45.378 main: stopped component minimserver in context context0
12:09:45.378 main: >>> EVENT >>> componentStopped: minimserver
12:09:45.378 main: ServerControl: componentStopped event for minimserver
12:09:45.378 main: Monitor: componentStopped event for minimserver in context context0
12:09:45.378 main: stopped context context0
12:09:45.378 main: >>> EVENT >>> contextStopped: context0
12:09:45.378 main: ServerControl: contextStopped event for context0
12:09:45.378 main: Monitor: contextStopped event for context0
12:09:45.378 main: error while starting context rootContext
12:09:45.378 main: >>> EVENT >>> startupComplete
12:09:45.378 main: ServerControl: startupComplete event
12:09:45.378 main: Monitor: startupComplete event
Find all posts by this user
Quote this message in a reply
28-04-2013, 04:12
Post: #2
RE: Crash when parsing multi-cd album
Previously I had no album artist set for this album.

If I assign an album artist, it is not crashing any more. This is a little artificial since the album doesn't have a single overall artist but it's a workaround.

I also found that in some situations when I don't assign an album artist for a multi-CD album, the CDs are not merged correctly. Is the album artist required for multi-CD albums which have different artists?

I followed the instructions in the user guide which indicate that the requirements for merging multiple CDs are setting the DISCNUMBER and having an identical ALBUM title for all CDs:
http://minimserver.com/ug-browsing.html#Multi-disc albums
Find all posts by this user
Quote this message in a reply
28-04-2013, 09:38
Post: #3
RE: Crash when parsing multi-cd album
(28-04-2013 01:16)classical11 Wrote:  Hi Simon,

I've just added a new 5-CD album, all flac, and MinimServer crashes with this call stack:

If I remove the album, clean up the cache and restart Minim, it works fine, so it's definitely this album.
I'm not sure what's wrong with it though..

Thanks for reporting this. It's a bug in MinimServer, and there is nothing wrong with the album. However, there is something unusual about the album that has triggered this bug. What are the values of the DISCNUMBER tags for the tracks on the 5 CDs?
Find all posts by this user
Quote this message in a reply
28-04-2013, 09:41 (This post was last modified: 28-04-2013 09:42 by simoncn.)
Post: #4
RE: Crash when parsing multi-cd album
(28-04-2013 04:12)classical11 Wrote:  Previously I had no album artist set for this album.

If I assign an album artist, it is not crashing any more. This is a little artificial since the album doesn't have a single overall artist but it's a workaround.

I also found that in some situations when I don't assign an album artist for a multi-CD album, the CDs are not merged correctly. Is the album artist required for multi-CD albums which have different artists?

I followed the instructions in the user guide which indicate that the requirements for merging multiple CDs are setting the DISCNUMBER and having an identical ALBUM title for all CDs:
http://minimserver.com/ug-browsing.html#Multi-disc albums

Please read this section (linked from the section that you referenced). It describes all the rules for merging CDs from different folders into a single album.
Find all posts by this user
Quote this message in a reply
28-04-2013, 10:14 (This post was last modified: 28-04-2013 10:29 by classical11.)
Post: #5
RE: Crash when parsing multi-cd album
(28-04-2013 09:38)simoncn Wrote:  However, there is something unusual about the album that has triggered this bug. What are the values of the DISCNUMBER tags for the tracks on the 5 CDs?

They are: 1/5, 2/5, etc.
Ah, I wonder if removing the '/5' suffix would fix the problem..
Find all posts by this user
Quote this message in a reply
28-04-2013, 10:40 (This post was last modified: 28-04-2013 10:54 by classical11.)
Post: #6
RE: Crash when parsing multi-cd album
(28-04-2013 10:14)classical11 Wrote:  
(28-04-2013 09:38)simoncn Wrote:  However, there is something unusual about the album that has triggered this bug. What are the values of the DISCNUMBER tags for the tracks on the 5 CDs?

They are: 1/5, 2/5, etc.
Ah, I wonder if removing the '/5' suffix would fix the problem..

Removing the /5 suffix and setting the DISCNUMBER tags to just 1, 2, 3, ..., did not fix the crash.

The only way to fix the crash was by setting the Album Artist on the album (same value for all tracks). I had the crash on 2 different multi-disk albums and this trick fixed the crash in both cases.

Edit: I just read the section you pointed me to and now I understand why sometimes multi-disk albums are not grouped when I don't set the Album Artist: it's because the individual disks will have different artists (aggregated from the tracks). I suspect the crash is related to this.
Find all posts by this user
Quote this message in a reply
28-04-2013, 13:02 (This post was last modified: 28-04-2013 13:02 by simoncn.)
Post: #7
RE: Crash when parsing multi-cd album
(28-04-2013 10:40)classical11 Wrote:  Edit: I just read the section you pointed me to and now I understand why sometimes multi-disk albums are not grouped when I don't set the Album Artist: it's because the individual disks will have different artists (aggregated from the tracks). I suspect the crash is related to this.

Yes, I think this is the reason for the crash. What Artist tags do you have on the CDs of one of the albums that caused a crash?

One small point: the artists are aggregated from different tracks for display purposes, but not for merging purposes. For merging to be successful, you either need to have an AlbumArtist tag or you need the Artist tag(s) on all the tracks to match exactly.
Find all posts by this user
Quote this message in a reply
28-04-2013, 13:39
Post: #8
RE: Crash when parsing multi-cd album
(28-04-2013 13:02)simoncn Wrote:  Yes, I think this is the reason for the crash. What Artist tags do you have on the CDs of one of the albums that caused a crash?

One small point: the artists are aggregated from different tracks for display purposes, but not for merging purposes. For merging to be successful, you either need to have an AlbumArtist tag or you need the Artist tag(s) on all the tracks to match exactly.

OK, it makes sense then. Thanks for the clarification.

When it was crashing I had no Album Artist tag and the Artist tags varied from track to track and from CD to CD.

For example, on CD 1, I had the following:
Tracks 1-5: Schoenberg Ensemble\\Reinbert De Leeuw
Tracks 6-10: Pierre-Laurent Aimard - piano\\ASKO Ensemble\\Reinbert De Leeuw
Track 11: Peter Masseurs - trumpet\\ASKO Ensemble\\Reinbert De Leeuw

And on CD2:
Tracks 1-9: Berlin Philharmonic Orchestra\\Jonathan Nott

CD3:
Tracks 1-3: Siegfried Palm - cello\\ASKO Ensemble\\Reinbert De Leeuw
...
...etc

(I can give you the full list of artists if it helps to track it down.)
Find all posts by this user
Quote this message in a reply
28-04-2013, 18:41
Post: #9
RE: Crash when parsing multi-cd album
(28-04-2013 13:39)classical11 Wrote:  For example, on CD 1, I had the following:
Tracks 1-5: Schoenberg Ensemble\\Reinbert De Leeuw
Tracks 6-10: Pierre-Laurent Aimard - piano\\ASKO Ensemble\\Reinbert De Leeuw
Track 11: Peter Masseurs - trumpet\\ASKO Ensemble\\Reinbert De Leeuw

And on CD2:
Tracks 1-9: Berlin Philharmonic Orchestra\\Jonathan Nott

CD3:
Tracks 1-3: Siegfried Palm - cello\\ASKO Ensemble\\Reinbert De Leeuw
...
...etc

(I can give you the full list of artists if it helps to track it down.)

Thanks very much! I've found a bug in the MinimServer code that could cause this problem. The fix will be in the upcoming 0.72 release.
Find all posts by this user
Quote this message in a reply
28-04-2013, 20:17
Post: #10
RE: Crash when parsing multi-cd album
[/quote]
Thanks very much! I've found a bug in the MinimServer code that could cause this problem. The fix will be in the upcoming 0.72 release.
[/quote]

Excellent. Thanks Simon!
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)