[PATCH libXau] Improve the handling of "normal" locking collisions.

Alan Coopersmith alan.coopersmith at oracle.com
Wed Oct 5 23:10:35 PDT 2011


On 09/20/11 05:06 PM, Alan Coopersmith wrote:
> On 09/05/11 08:37, Matthew D. Fuller wrote:
>> I've long gotten semi-regular locking failures from xauth where there
>> really shouldn't be. Tracked down to error checking in libXau being
>> too restrictive on the failure mechanisms it expects.
>>
>>
>> -- Matthew Fuller (MF4839) | fullermd at over-yonder.net Systems/Network
>> Administrator | http://www.over-yonder.net/~fullermd/ On the Internet, nobody
>> can hear you scream.
>>
>>
>> 0001-Improve-the-handling-of-normal-locking-collisions.patch
>>
>>
>>> From 1ea426ce3960e59d08dd5d6911c239594b8256c4 Mon Sep 17 00:00:00 2001
>> From: "Matthew D. Fuller"<fullermd at over-yonder.net>
>> Date: Mon, 5 Sep 2011 10:31:14 -0500
>> Subject: [PATCH] Improve the handling of "normal" locking collisions.
>>
>> EEXIST is a perfectly normal and expected errno for open(O_CREAT |
>> O_EXCL), and is a signal to loop around and retry, not return with an
>> error.
>>
>> Signed-off-by: Matthew D. Fuller<fullermd at over-yonder.net>
>> ---
>> AuLock.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/AuLock.c b/AuLock.c
>> index c236027..91d0f31 100644
>> --- a/AuLock.c
>> +++ b/AuLock.c
>> @@ -81,7 +81,7 @@ long dead)
>> if (creat_fd == -1) {
>> creat_fd = open (creat_name, O_WRONLY | O_CREAT | O_EXCL, 0600);
>> if (creat_fd == -1) {
>> - if (errno != EACCES)
>> + if (errno != EACCES&& errno != EEXIST)
>> return LOCK_ERROR;
>> } else
>> (void) close (creat_fd);
>
> Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
>

And since no one else had any objections, pushed now:

To ssh://git.freedesktop.org/git/xorg/lib/libXau
    8fd15eb..5c01ef6  master -> master


-- 
	-Alan Coopersmith-        alan.coopersmith at oracle.com
	 Oracle Solaris Platform Engineering: X Window System



More information about the xorg-devel mailing list