Dear list users,
I am getting the following errors on my Openldap servers : ber_flush failed errno=11 reason="Resource temporarily unavailable" The same error occurs indifferently on master and replica servers.
I'm trying to work out what might be causing this. I presume it's a network issue. What I'm not sure of is if it is when then servers try to communicate or if it is something else. One possible other cause is when the server tries to write the data to its database, as the filesystem is hosted on an iscsi NAS, but then the error would presumably be with iscsi and not openldap.
My servers are all Openldap 2.3.43-3.el5 on CentOS 5.3, using bdb for the database and syncrepl for replication.
I tried to find info about ber_flush and its various error codes but I haven't been very successful so far.
Do you have any clues?
Thanks.
Oliver
--On Wednesday, September 09, 2009 12:14 PM +0200 Oliver Henriot Oliver.Henriot@imag.fr wrote:
Dear list users,
I tried to find info about ber_flush and its various error codes but I haven't been very successful so far.
Do you have any clues?
What makes you think it is an error?
--Quanah
--
Quanah Gibson-Mount Principal Software Engineer Zimbra, Inc -------------------- Zimbra :: the leader in open source messaging and collaboration
Dear Quanah & list members,
Well, first, I'd assumed that the reason "Resource temporarily unavailable" meant something wasn't as smooth as it could be and, secondly, I thought "errno" was a contraction of "error number" but maybe I'm wrong?
Best regards,
Oliver
Dans sa grande sagesse, Quanah Gibson-Mount a écrit, le 09.09.2009 18:05 :
--On Wednesday, September 09, 2009 12:14 PM +0200 Oliver Henriot Oliver.Henriot@imag.fr wrote:
Dear list users,
I tried to find info about ber_flush and its various error codes but I haven't been very successful so far.
Do you have any clues?
What makes you think it is an error?
--Quanah
--
Quanah Gibson-Mount Principal Software Engineer Zimbra, Inc
Zimbra :: the leader in open source messaging and collaboration
Oliver Henriot writes:
Well, first, I'd assumed that the reason "Resource temporarily unavailable" meant something wasn't as smooth as it could be and,
The server had some data it wanted to send, and eagerly tried to send it - but it's sending faster than the network can accept it, or the client isn't reading the responses it requested, or the network is flaky, or...
I don't know exactly what leads to which errno, but the point remains is that this is normal and not an error. Though as you can see from the above list, some of the reasons can be errors on someone's part, so if you are having server problems this can indicate the trouble. Otherwise forget it.
secondly, I thought "errno" was a contraction of "error number" but maybe I'm wrong?
errno is the name of a system variable in the C language, with that meaning, yes. You've asked for detailed logging about what the server is doing, instead of just using the default and recommended loglevel (256), so that's what you are receiving.
But the doc should make a clearer distinction between "debugging" log levels and "informational" loglevels. I just had a "duh, users might not know C and errno is C" moment when I saw your guess about errno:-)
Dear Hallvard and list users,
Thank you very much for your detailed reply, I have learnt much from it :-)
Dans sa grande sagesse, Hallvard B Furuseth a écrit, le 10.09.2009 15:31 :
Oliver Henriot writes:
Well, first, I'd assumed that the reason "Resource temporarily unavailable" meant something wasn't as smooth as it could be and,
The server had some data it wanted to send, and eagerly tried to send it
- but it's sending faster than the network can accept it, or the client
isn't reading the responses it requested, or the network is flaky, or...
I don't know exactly what leads to which errno, but the point remains is that this is normal and not an error. Though as you can see from the above list, some of the reasons can be errors on someone's part, so if you are having server problems this can indicate the trouble. Otherwise forget it.
I do indeed have problems with some of my ldap servers, which stop answering from time to time, so I'm trying to narrow down the various possible causes. Network seemed a probable candidate, so I'd added "conns" to the loglevel. But there other possible candidates too. I'm just finding it hard to get the right loglevel to record something useful when the servers crash.
secondly, I thought "errno" was a contraction of "error number" but maybe I'm wrong?
errno is the name of a system variable in the C language, with that meaning, yes. You've asked for detailed logging about what the server is doing, instead of just using the default and recommended loglevel (256), so that's what you are receiving.
But the doc should make a clearer distinction between "debugging" log levels and "informational" loglevels. I just had a "duh, users might not know C and errno is C" moment when I saw your guess about errno:-)
Absolutely right.
Best regards,
openldap-technical@openldap.org