Ticket #706 (new Bug)
Problem with MP3 files with no ID3 tags
| Reported by: | omnichad | Owned by: | steven |
|---|---|---|---|
| Priority: | Major | Component: | Streaming and Networking |
| Version: | Keywords: | ||
| Cc: | bbk@… |
Description
I have an MP3 file with no ID3 tags. When trying to stream the MP3 using oflaDemo, I get the following in the log and the server stops responding to requests:
[INFO] [NioProcessor-1] org.red5.server.net.rtmp.RTMPHandler - Connecting to: [WebScope@388a2006 Depth = 1, Path = '/default', Name = 'oflaDemo']
[INFO] [NioProcessor-1] org.red5.server.net.rtmp.RTMPHandler - Remembering client buffer on stream: 3000
Mar 5, 2010 11:42:51 AM org.jaudiotagger.audio.AudioFile checkFilePermissions
INFO: Reading file:path/opt/red5/webapps/oflaDemo/streams/freelivesports/wcaz/FootballIlliniWestVsStillmanValley-20091121.mp3:abs:/opt/red5/webapps/oflaDemo/streams/freelivesports/wcaz/FootballIlliniWestVsStillmanValley-20091121.mp3
Mar 5, 2010 11:42:51 AM org.jaudiotagger.audio.mp3.MP3File readV1Tag
INFO: No ids3v11 tag found
Mar 5, 2010 11:42:51 AM org.jaudiotagger.audio.mp3.MP3File readV1Tag
INFO: No id3v1 tag found
Mar 5, 2010 11:42:51 AM org.jaudiotagger.audio.mp3.MP3File readV2Tag
INFO: Not enough room for valid id3v2 tag:0
[INFO] [NioProcessor-1] org.red5.io.mp3.impl.MP3Reader - File did not contain ID3v2 data: FootballIlliniWestVsStillmanValley-20091121.mp3
Exception in thread "Red5_Scheduler_QuartzSchedulerThread" java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.<init>(HashMap.java:209)
at java.util.HashSet.<init>(HashSet.java:86)
at org.quartz.JobDetail.clone(JobDetail.java:526)
at org.quartz.simpl.RAMJobStore.retrieveJob(RAMJobStore.java:488)
at org.quartz.simpl.RAMJobStore.triggerFired(RAMJobStore.java:1306)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:342)
[ERROR] [NioProcessor-1] org.red5.server.messaging.InMemoryPullPullPipe - exception when pulling message from provider
java.lang.OutOfMemoryError: Java heap space
at org.apache.xerces.dom.CoreDocumentImpl.createAttribute(Unknown Source) [xercesImpl-2.9.1.jar:na]
at org.apache.xerces.dom.ElementImpl.setAttribute(Unknown Source) [xercesImpl-2.9.1.jar:na]
at org.red5.io.FileKeyFrameMetaCache.saveKeyFrameMeta(FileKeyFrameMetaCache.java:170) [red5.jar:na]
at org.red5.io.CachingFileKeyFrameMetaCache.saveKeyFrameMeta(CachingFileKeyFrameMetaCache.java:87) [red5.jar:na]
at org.red5.io.mp3.impl.MP3Reader.analyzeKeyFrames(MP3Reader.java:623) [red5.jar:na]
at org.red5.io.mp3.impl.MP3Reader.<init>(MP3Reader.java:242) [red5.jar:na]
at org.red5.io.mp3.impl.MP3.getReader(MP3.java:48) [red5.jar:na]
at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:232) [red5.jar:na]
at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:126) [red5.jar:na]
at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:70) [red5.jar:na]
at org.red5.server.stream.PlayEngine.playVOD(PlayEngine.java:576) [red5.jar:na]
at org.red5.server.stream.PlayEngine.play(PlayEngine.java:440) [red5.jar:na]
at org.red5.server.stream.PlayEngine.play(PlayEngine.java:286) [red5.jar:na]
at org.red5.server.stream.PlaylistSubscriberStream.play(PlaylistSubscriberStream.java:226) [red5.jar:na]
at org.red5.server.stream.StreamService.play(StreamService.java:294) [red5.jar:na]
at org.red5.server.stream.StreamService.play(StreamService.java:316) [red5.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_17]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.6.0_17]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_17]
at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_17]
at org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:200) [red5.jar:na]
at org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:186) [red5.jar:na]
at org.red5.server.net.rtmp.RTMPHandler.onInvoke(RTMPHandler.java:395) [red5.jar:na]
at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:138) [red5.jar:na]
at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageReceived(RTMPMinaIoHandler.java:180) [red5.jar:na]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:713) [mina-core-2.0.0-RC1.jar:na]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:na]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) [mina-core-2.0.0-RC1.jar:na]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793) [mina-core-2.0.0-RC1.jar:na]
at org.red5.server.net.filter.TrafficShapingFilter.messageReceived(TrafficShapingFilter.java:204) [red5.jar:na]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:na]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) [mina-core-2.0.0-RC1.jar:na]
Mar 5, 2010 11:43:03 AM org.jaudiotagger.audio.AudioFile checkFilePermissions
INFO: Reading file:path/opt/red5/webapps/oflaDemo/streams/freelivesports/wcaz/FootballIlliniWestVsStillmanValley-20091121.mp3:abs:/opt/red5/webapps/oflaDemo/streams/freelivesports/wcaz/FootballIlliniWestVsStillmanValley-20091121.mp3
Mar 5, 2010 11:43:03 AM org.jaudiotagger.audio.mp3.MP3File readV1Tag
INFO: No ids3v11 tag found
Mar 5, 2010 11:43:03 AM org.jaudiotagger.audio.mp3.MP3File readV1Tag
INFO: No id3v1 tag found
Mar 5, 2010 11:43:03 AM org.jaudiotagger.audio.mp3.MP3File readV2Tag
INFO: Not enough room for valid id3v2 tag:0
[INFO] [pool-4-thread-1] org.red5.io.mp3.impl.MP3Reader - File did not contain ID3v2 data: FootballIlliniWestVsStillmanValley-20091121.mp3
Exception in thread "pool-6-thread-1" java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.newKeyIterator(HashMap.java:840)
at java.util.HashMap$KeySet.iterator(HashMap.java:874)
at java.util.HashSet.iterator(HashSet.java:153)
at sun.nio.ch.SelectorImpl.processDeregisterQueue(SelectorImpl.java:127)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:69)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.java:69)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:961)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
[ERROR] [pool-4-thread-1] org.red5.server.messaging.InMemoryPullPullPipe - exception when pulling message from provider
java.lang.OutOfMemoryError: Java heap space
at java.lang.Long.toString(Long.java:243) [na:1.6.0_17]
at java.lang.Long.toString(Long.java:100) [na:1.6.0_17]
at java.lang.String.valueOf(String.java:2945) [na:1.6.0_17]
at org.red5.io.FileKeyFrameMetaCache.saveKeyFrameMeta(FileKeyFrameMetaCache.java:170) [red5.jar:na]
at org.red5.io.CachingFileKeyFrameMetaCache.saveKeyFrameMeta(CachingFileKeyFrameMetaCache.java:87) [red5.jar:na]
at org.red5.io.mp3.impl.MP3Reader.analyzeKeyFrames(MP3Reader.java:623) [red5.jar:na]
at org.red5.io.mp3.impl.MP3Reader.<init>(MP3Reader.java:242) [red5.jar:na]
at org.red5.io.mp3.impl.MP3.getReader(MP3.java:48) [red5.jar:na]
at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:232) [red5.jar:na]
at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:126) [red5.jar:na]
at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:70) [red5.jar:na]
at org.red5.server.stream.PlayEngine$PullAndPushRunnable.run(PlayEngine.java:1538) [red5.jar:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_17]
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [na:1.6.0_17]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [na:1.6.0_17]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_17]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) [na:1.6.0_17]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) [na:1.6.0_17]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_17]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_17]
at java.lang.Thread.run(Thread.java:619) [na:1.6.0_17]
