I’ve been trying, without success, to get RSSOwl to function properly (not crash) when it is subscribed to over 2000 news feeds. When it fails, I generally see an “org.apache.lucene.store.LockReleaseFailedException” error, followed by many “java.lang.NullPointerException”. To help get to the bottom of this, I’ve generated a simple test case, using a small subset of the feeds that Julien Genestoux at Superfeedr put together ( http://blog.superfeedr.com/top-feeds-list/ ). My hope is that someone familiar with the internals of RSSOwl will be able to replicate this problem, troubleshoot it, and fix it. Many thanks in advance.
OBSERVATION
• This problem appears quickly (generally within a minute) if one cancels out of the initial RSSOwl “Welcome” screen and imports a large OPML file from File -> Import
• It appears slowly (perhaps in 15 minutes) if one uses the procedure below; or if one imports the same set of feeds from the “Welcome” window
• One has to be cautious about keeping the periodic update (defaulted to 30 minute intervals) from beginning before the new feeds have completed their first update (genodeftest, on 2013-04-30, diagnosed that there will be a memory leak if new worker threads are spawned before their counterparts have exited)
(Slow) procedure to replicate failure on large number of feeds (paths assume one is running under Windows)
Set memory allocation to 1024 MB
a. Take ownership of “Program Files (x86)\RSSOwl\RSSOwl.ini”
b. Set your permissions to “Full Control”
c. Edit line 3 to say “-Xmx1024m”, and save
Start RSSOwl on a fresh folder
a. I invoked through a desktop shortcut with this Target:
"C:\Program Files (x86)\RSSOwl\RSSOwl.exe" -data D:\RSSOwl\Test\
b. On the Welcome screen, select “Do not Import Feeds”
c. Finish
d. Finish
e. Tools -> Preferences -> Feeds -> Automatically update the feeds every -> 30 DAYS (effectively turning updates off)
f. OK
g. File -> Import -> Import Feeds from a file or Website > Set path to: https://dl.dropboxusercontent.com/u/88894155/first_2500_test_feeds.opml
h. Next
i. Finish
Observe the size of the log file (it is in the data directory specified in step 2.a; as the “.log” file under “.metadata”)
a. It should start at 1k
b. When it starts growing rapidly, examine it. I get an “org.apache.lucene.store.LockReleaseFailedException “ (see below), which is followed by a plethora of “java.lang.NullPointerException”
c. The application is now hosed (but usually will restart OK and run for a time before crashing again)
!ENTRY org.rssowl.core 4 2 2013-07-24 11:39:11.917
!MESSAGE Problems occurred when invoking code from plug-in: "org.rssowl.core".
!STACK 0
org.rssowl.core.persist.service.PersistenceException: https://dl.dropboxusercontent.com/u/88894155/first_2500_test_feeds.opml: failed to delete D:\RSSOwl\Test.metadata.plugins\org.rssowl.core\lucene-d786ca1adfc767698acd01135e9e65ad-n-write.lock
at org.rssowl.core.internal.persist.search.Indexer.dispose(Indexer.java:554)
at org.rssowl.core.internal.persist.search.Indexer.flushIfNecessary(Indexer.java:254)
at org.rssowl.core.internal.persist.search.ModelSearchImpl.getCurrentSearcher(ModelSearchImpl.java:489)
at org.rssowl.core.internal.persist.search.ModelSearchImpl.searchNewsByLinks(ModelSearchImpl.java:291)
at org.rssowl.core.internal.ApplicationServiceImpl.updateStateOfUnsavedNewNews(ApplicationServiceImpl.java:646)
at org.rssowl.core.internal.ApplicationServiceImpl.access$4(ApplicationServiceImpl.java:624)
at org.rssowl.core.internal.ApplicationServiceImpl$2.run(ApplicationServiceImpl.java:320)
at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
at org.rssowl.core.internal.ApplicationServiceImpl.handleFeedReload(ApplicationServiceImpl.java:317)
at org.rssowl.ui.internal.Controller$3.run(Controller.java:868)
at org.rssowl.core.util.JobQueue$2$1.run(JobQueue.java:329)
at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
at org.rssowl.core.util.JobQueue$2.run(JobQueue.java:326)
at org.eclipse.core.internal.jobs.Worker.run(Unknown Source)
Caused by: org.apache.lucene.store.LockReleaseFailedException: failed to delete D:\RSSOwl\Test.metadata.plugins\org.rssowl.core\lucene-d786ca1adfc767698acd01135e9e65ad-n-write.lock
at org.apache.lucene.store.NativeFSLock.release(NativeFSLockFactory.java:311)
at org.apache.lucene.index.IndexWriter.closeInternal(IndexWriter.java:1259)
at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1186)
at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1154)
at org.rssowl.core.internal.persist.search.Indexer.dispose(Indexer.java:552)
... 13 more
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I’ve been trying, without success, to get RSSOwl to function properly (not crash) when it is subscribed to over 2000 news feeds. When it fails, I generally see an “org.apache.lucene.store.LockReleaseFailedException” error, followed by many “java.lang.NullPointerException”. To help get to the bottom of this, I’ve generated a simple test case, using a small subset of the feeds that Julien Genestoux at Superfeedr put together ( http://blog.superfeedr.com/top-feeds-list/ ). My hope is that someone familiar with the internals of RSSOwl will be able to replicate this problem, troubleshoot it, and fix it. Many thanks in advance.
OBSERVATION
• This problem appears quickly (generally within a minute) if one cancels out of the initial RSSOwl “Welcome” screen and imports a large OPML file from File -> Import
• It appears slowly (perhaps in 15 minutes) if one uses the procedure below; or if one imports the same set of feeds from the “Welcome” window
• One has to be cautious about keeping the periodic update (defaulted to 30 minute intervals) from beginning before the new feeds have completed their first update (genodeftest, on 2013-04-30, diagnosed that there will be a memory leak if new worker threads are spawned before their counterparts have exited)
(Slow) procedure to replicate failure on large number of feeds (paths assume one is running under Windows)
a. Take ownership of “Program Files (x86)\RSSOwl\RSSOwl.ini”
b. Set your permissions to “Full Control”
c. Edit line 3 to say “-Xmx1024m”, and save
a. I invoked through a desktop shortcut with this Target:
"C:\Program Files (x86)\RSSOwl\RSSOwl.exe" -data D:\RSSOwl\Test\
b. On the Welcome screen, select “Do not Import Feeds”
c. Finish
d. Finish
e. Tools -> Preferences -> Feeds -> Automatically update the feeds every -> 30 DAYS (effectively turning updates off)
f. OK
g. File -> Import -> Import Feeds from a file or Website > Set path to:
https://dl.dropboxusercontent.com/u/88894155/first_2500_test_feeds.opml
h. Next
i. Finish
a. It should start at 1k
b. When it starts growing rapidly, examine it. I get an “org.apache.lucene.store.LockReleaseFailedException “ (see below), which is followed by a plethora of “java.lang.NullPointerException”
c. The application is now hosed (but usually will restart OK and run for a time before crashing again)
!ENTRY org.rssowl.core 4 2 2013-07-24 11:39:11.917
!MESSAGE Problems occurred when invoking code from plug-in: "org.rssowl.core".
!STACK 0
org.rssowl.core.persist.service.PersistenceException: https://dl.dropboxusercontent.com/u/88894155/first_2500_test_feeds.opml: failed to delete D:\RSSOwl\Test.metadata.plugins\org.rssowl.core\lucene-d786ca1adfc767698acd01135e9e65ad-n-write.lock
at org.rssowl.core.internal.persist.search.Indexer.dispose(Indexer.java:554)
at org.rssowl.core.internal.persist.search.Indexer.flushIfNecessary(Indexer.java:254)
at org.rssowl.core.internal.persist.search.ModelSearchImpl.getCurrentSearcher(ModelSearchImpl.java:489)
at org.rssowl.core.internal.persist.search.ModelSearchImpl.searchNewsByLinks(ModelSearchImpl.java:291)
at org.rssowl.core.internal.ApplicationServiceImpl.updateStateOfUnsavedNewNews(ApplicationServiceImpl.java:646)
at org.rssowl.core.internal.ApplicationServiceImpl.access$4(ApplicationServiceImpl.java:624)
at org.rssowl.core.internal.ApplicationServiceImpl$2.run(ApplicationServiceImpl.java:320)
at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
at org.rssowl.core.internal.ApplicationServiceImpl.handleFeedReload(ApplicationServiceImpl.java:317)
at org.rssowl.ui.internal.Controller$3.run(Controller.java:868)
at org.rssowl.core.util.JobQueue$2$1.run(JobQueue.java:329)
at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
at org.rssowl.core.util.JobQueue$2.run(JobQueue.java:326)
at org.eclipse.core.internal.jobs.Worker.run(Unknown Source)
Caused by: org.apache.lucene.store.LockReleaseFailedException: failed to delete D:\RSSOwl\Test.metadata.plugins\org.rssowl.core\lucene-d786ca1adfc767698acd01135e9e65ad-n-write.lock
at org.apache.lucene.store.NativeFSLock.release(NativeFSLockFactory.java:311)
at org.apache.lucene.index.IndexWriter.closeInternal(IndexWriter.java:1259)
at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1186)
at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1154)
at org.rssowl.core.internal.persist.search.Indexer.dispose(Indexer.java:552)
... 13 more
Hello.
Your problem is possibly memory related. 32 bit java is a bit limited with the amount memory it could use - 1GB is usually pushing it.
Try building 64 bit version of RSSOwl yourself, of try the build I posted here:
https://sourceforge.net/p/rssowl/discussion/296910/thread/14f5562e/