[Pacemaker] [libqb]Unlink of files bound to sockets
Grüninger, Andreas (LGL Extern)
Andreas.Grueninger at lgl.bwl.de
Thu Dec 18 17:46:42 UTC 2014
And the commit 57539d1abc09e5aef322cb9cca5b3e6c496cfae9 from corosync.
There is no code for unlinking of the files bound to sockets if unix domain sockets are used.
-----Ursprüngliche Nachricht-----
Von: David Vossel [mailto:dvossel at redhat.com]
Gesendet: Donnerstag, 18. Dezember 2014 18:13
An: The Pacemaker cluster resource manager
Betreff: Re: [Pacemaker] [libqb]Unlink of files bound to sockets
----- Original Message -----
>
>
> I sent yesterday this email to the mailing list of libq
> 'quarterback-devel at lists.fedorahosted.org'.
>
> But there is nearly no activity since august.
i saw the email. i flagged it so it would get a response.
>
> I use the current trunk of libqb.
>
> In qb_ipcc_us_sock_close nd qb_ipcs_us_withdraw of lib/ipc_setup.c sockets
> are closed.
>
> Is there a reason why the files bound to the sockets are not deleted with
> unlink?
>
> Is unlinking not necessary with Linux?
Unlinking is required for linux.
For client/server connections.
qb_ipcc_us_disconnect unlinks on the client side.
qb_ipcs_us_disconnect unlinks on the server side.
> I found thousands of files in statedir=/var/corosync/run after a while.
What version of corosync are you using? There were some reference leaks for
ipc connections in the corosync code we fixed a year or so ago that should have
fixed this.
-- David
>
>
> I tried this and it seems to work without errors.
>
>
>
> e.g.
>
> void
>
> qb_ipcc_us_sock_close(int32_t sock)
>
> {
>
> #ifdef QB_SOLARIS
>
> struct sockaddr_un un_addr;
>
> socklen_t un_addr_len = sizeof(struct sockaddr_un);
>
> #endif
>
> shutdown(sock, SHUT_RDWR);
>
> #ifdef QB_SOLARIS
>
> if (getsockname(sock, (struct sockaddr *)&un_addr, &un_addr_len) == 0) {
>
> if(strstr(un_addr.sun_path,"-") != NULL) {
>
> qb_util_log(LOG_DEBUG, "un_addr.sun_path=%s", un_addr.sun_path);
>
> unlink(un_addr.sun_path);
>
> }
>
> } else {
>
> qb_util_log(LOG_DEBUG, "getsockname returned errno=%d", errno);
>
> }
>
> #endif
>
> close(sock);
>
> }
>
>
>
> Regards
>
>
>
> Andreas
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org
>
_______________________________________________
Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
http://oss.clusterlabs.org/mailman/listinfo/pacemaker
Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org
More information about the Pacemaker
mailing list