Return-Path: Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 23083 invoked by uid 500); 27 Mar 2003 07:27:47 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Delivered-To: mailing list dev@apr.apache.org Received: (qmail 23066 invoked from network); 27 Mar 2003 07:27:46 -0000 From: "Spinka, Kristofer" To: Subject: ["PATCH"] STATUS: fcntl() oddness on Solaris Date: Thu, 27 Mar 2003 02:27:51 -0500 Message-ID: <010301c2f432$60b37130$1600200a@hq.style.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N I would like to close the following issue with a README addition. Excerpt from STATUS: ==================== * fcntl() oddness on Solaris. Under high loads, fcntl() decides to return error code 46 (ENOLCK). httpd (prefork MPM) error log says (predictably): (46)No record locks available: couldn't grab the accept mutex All of the children report this and subsequently exits. httpd is now hosed. AFAICT, this does not look to be an out-of-fds error. Solaris's man page says: ENOLCK The cmd argument is F_SETLK, F_SETLK64, F_SETLKW, or F_SETLKW64 and satisfying the lock or unlock request would result in the number of locked regions in the system exceeding a system-imposed limit. Justin says: What is this system-imposed limit and how do we change it? This gives me more rationale for switching the default interprocess lock mechanism to pthread (if available). ============ Explanation: ============ The system imposed default limit of outstanding lock requests is 512. You can verify this by, in a contemporary version of Solaris: # mdb -k > tune_t_flckrec/D tune_t_flckrec: tune_t_flckrec: 512 This can be increased by adding the following to /etc/system: set tune_t_flckrec=1024 and rebooting. Of course "1024" can be any reasonable limit, although I do not know what "reasonable" should be, so be conservative, only increase this as necessary. ============ Notes: ====== If someone would please test this on a system known to break that would be great. In addition it is mentioned that *all* of the children report this, is it actually all of them, or all of them after a certain threshold? /kristofer