-
Notifications
You must be signed in to change notification settings - Fork 268
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
maxreaders limit reached #178
Comments
Same issue as here with a solution: #169 Can start monero daemon with smaller concurrency using |
well, thats a solution in monero.... @hyc mentioned there should be something fixable in the explorer code. stale lookers or stale something or others. Anyway, its also possible to clean this up using: mdb_stat -rr ~/.bitmonero/lmdb/ which can be found in external/db_drivers/liblmdb/ of the monero directory |
Thanks. Will look into that. I had this issue in OpenMonero, but it was because OM uses a lot of threads. It was fixed by changing OM architecture. Explorer does not create many threads. So this error here is more interesting. Maybe its due to stale readers then. |
Does the issue occur each time you start xmrblocks, or from time to time? |
For example, to limit http requests to two threads:
|
yeah, stale readers. Thats what hyc said. And when I ran that mdbstat command, it found 104 stale readers or something. |
For now I don't know whey those stale readers originate from. As a temporary solution you could maybe use |
yeah thats what I've done. hyc wasn't happy. :) |
FYI, this is still a problem, and I had to increase the frequency of the mdb_stat thing to every 5 minutes or something |
you really should figure out why your readers aren't exiting cleanly... |
@Gingeropolous I will try to replicate the issue by putting some load on my localhost using jmeter. |
this is my launch file
|
T.L.D.R: Switch off caching, i.e., use I tested few scenarios using jmeter, and I found an issue leading to max readers error (assuming its the same for you). Turns out that under some load (100-200 jmeter threads), explorer was crashing and readers were not de-allocated. Restarting the explorer, allocated new readers, but then due to cache issues it crashed again without de-allocating readers one more time. So after few such crashes, all readers were used up, resulting in Disabling caches solved the issue in my tests. Caches will be remove in future from the explorer, so its better not to use them anyway. p.s.
|
Where can I find I have the same problem and would like to check the stale readers. Thanks a lot. |
this is the crontab i have on xmrchain.net
|
The issue persists? I though that removing cashes from the explorer helped, as this is what I identified as a cause of the problem in my previews tests. |
Well, to be honest it was the daemon (stagenet) actually who threw this error and did not start. But since there only is the daemon and the explorer accessing the db I suspected the explorer and jumped onto this train. |
The explorer was causing this issue, as explained here #178 (comment) But I thought the issue was resolved. But maybe there is something new in the explorer that is causing the maxreader error. Will have to confirm with @Gingeropolous if this is the case. |
@moneroexamples , I don't know. I apparently forgot about this crontab when I updated. I am currently setting up a new server for xmrchain.net, and will attempt to run it clean to see if its all fixed. |
Was there ever investigation into what specifically caused this error? I see the mention of cache disabling above... but seems a rough fix. @Gingeropolous thanks for the But would like to get to the bottom of why this occurred, in the first place. I am using a fork of |
If you've got a lot of users, you may legitimately be using up all the available reader slots. The default is 126, which must be shared with monerod itself. If you need more, you can use this little program to set whatever number you want. It must be run before any other program that uses the blockchain DB, and it needs to stay alive (as a background job, whatever) until any other programs start.
|
The text was updated successfully, but these errors were encountered: