[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [rdiff-backup-users] Socket error: AF_UNIX path too long
From: |
Scott Lamb |
Subject: |
Re: [rdiff-backup-users] Socket error: AF_UNIX path too long |
Date: |
Sat, 13 May 2006 12:28:01 -0700 |
On May 13, 2006, at 4:31 AM, address@hidden wrote:
$ zcat error_log.2006-04-29T02\:18\:43+02\:00.data.gz
SpecialFileError var/lib/mysql/mysql.sock AF_UNIX path too long
SpecialFileError var/run/authdaemon.courier-imap/socket Socket
error: AF_UNIX path too long
does anybody have a clue, what this means and why this only
happened on april 29 ?
I can answer the first half of your question:
/*
* [XSI] Definitions for UNIX IPC domain.
*/
struct sockaddr_un {
unsigned char sun_len; /* sockaddr len including
null */
sa_family_t sun_family; /* [XSI] AF_UNIX */
char sun_path[104]; /* [XSI] path name (gag) */
};
<http://svn.python.org/view/python/trunk/Modules/socketmodule.c?
view=log> in getsockaddrarg:
if (len >= sizeof addr->sun_path) {
PyErr_SetString(socket_error,
"AF_UNIX path too
long");
return 0;
}
so you can't create a UNIX domain socket if the entire path is longer
than 104 characters - trailing null = 103 characters.
I'm not sure if the OS would accept a longer one if you allocated a
larger memory region and set sun_len appropriately, but you
definitely can't do it with a current version of Python.
rdiff-backup must be copying these files to a path with a prefix
longer than 79 characters. I don't know why it'd be doing so on this
day but not others, but I'm not familiar with its internal format.
--
Scott Lamb <http://www.slamb.org/>