From: Christos Trochalakis <email@example.com> To: Eric Wong <firstname.lastname@example.org> Cc: Amir Yalon <email@example.com>, firstname.lastname@example.org Subject: Re: Systemd socket inheritance fails with “not a socket file descriptor” Date: Wed, 9 Mar 2016 16:06:04 +0200 [thread overview] Message-ID: <20160309140604.GB25830@luke.ws.skroutz.gr> (raw) In-Reply-To: <20160309035157.GA23507@dcvr.yhbt.net> On Wed, Mar 09, 2016 at 03:51:57AM +0000, Eric Wong wrote: >Amir Yalon <email@example.com> wrote: >> Yes, everything looks as expected, one inherited socket starting at fd >> number 3: >> >> I= PID=4869 FDS=1 >> >> Also tried with Ruby 2.2.1, same results. FWIW, my rubies are compiled >> by system-wide RVM with no special options given to it. > >Interesting. Can you try using some other non-Ruby daemon >which uses sd_listen_fds, too? I can't think of any off >the top of my head, but I'm sure there's some. > >It seems like systemd is mis-setting FD_CLOEXEC on socket, >even. > Ok, this is my theory, systemd correctly passes the sockets and the environment to the process, but Amir is using rvm which probably runs one more exec than usual. In this extra step rvm/ruby closes the fds for security reasons but the ENV variables remain. In the newly forked ruby process the timer gets fd=3 (which is now consider internal) and when unicorn tries to example fd=3 breaks.
next prev parent reply other threads:[~2016-03-09 14:06 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-07 23:08 Amir Yalon 2016-03-08 3:31 ` Eric Wong 2016-03-08 7:45 ` Amir Yalon 2016-03-08 17:39 ` Eric Wong 2016-03-08 20:32 ` Amir Yalon 2016-03-09 3:51 ` Eric Wong 2016-03-09 13:19 ` Systemd socket inheritance fails with “not a socket file descriptor” [take2] Christos Trochalakis 2016-03-09 14:06 ` Christos Trochalakis [this message] 2016-03-10 9:48 ` Systemd socket inheritance fails with “not a socket file descriptor” Amir Yalon 2016-03-12 5:30 ` Eric Wong 2016-03-12 23:19 ` Amir Yalon 2016-03-17 0:27 ` [PATCH] doc: reference --keep-file-descriptors for "bundle exec" Eric Wong 2016-03-17 13:09 ` Amir Yalon 2016-03-17 16:37 ` Eric Wong
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://yhbt.net/unicorn/ * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20160309140604.GB25830@luke.ws.skroutz.gr \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: Systemd socket inheritance fails with “not a socket file descriptor”' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: ../../unicorn.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).