<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 13, 2013 at 3:25 PM, Eric Windisch <span dir="ltr"><<a href="mailto:eric@cloudscaling.com" target="_blank">eric@cloudscaling.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div><div class="h5"><p style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">
</p><p style="color:#a0a0a8">On June 13, 2013 at 16:18:18 , Ray Pekowski (<a href="mailto:pekowski@gmail.com" target="_blank">pekowski@gmail.com</a>) wrote:</p> <div><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Times;word-spacing:0px"><span style="font-family:helvetica;font-size:13px"><blockquote type="cite" style="border-left-style:solid;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;margin-left:0px;padding-left:10px">
<span><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>What exactly is the benefit of using Unix domain sockets?  Sorry if it is obvious.<br></div></div></div></div></div></span></blockquote>
</span></span></div></div></div><p>1. Only local users can access the backdoor, limited by filesystem/user permissions.</p></div></div></blockquote><div>Since eventlet_backdoor.py only listens on localhost, it shares the same local user only benefit, but probably doesn't have any permission capabilities as far as I know. <br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><p>2. Unix sockets have filenames. You can set this based on the RPC topic, the process ID (pid), randomly, or some other mechanism. Overall, you get better/more options for your namespace than port numbers which as you've noticed can be problematic.</p>
</div></div></blockquote><div>I suppose it could be overcome, but the call to eventlet_backdoor in the code today is done before the topic is established, so the unix socket filename would likely be random or semi-random (process ID).<br>
<br></div><div>I'm not adverse to the idea.  It would require some education on the part of the users.  I assume the usage is something like this:<br><br></div><div>socat <unix domain socket> <exec telnet><br>
<br></div><div>Which could be scripted, a requirements of mine, so that I can script the periodic collection of call stacks.<br><br></div><div>Getting back to the subject....<br></div><div><br>I don't see why we can't support all options other than the one that exists today, because I truly consider it broken just from my experience.  Here's my story:<br>
<br>I didn't know about listening on port 0, so when I read the code and saw what appeared to be lack of support for multiple services, I made a private patch.  It seems Matthew Treinish did the same thing.  Others will too.  Those people will be wasting their time and then some number of them will ask questions on the mailing list and waste someone else's time explaining about port 0.<br>
<br>Here is what I think we could do.  Have options for all of these:<br><br></div><div>- enable_backdoor (default is tcp sockets with port 0)<br></div><div>- enable_backdoor_ipc (unix domain sockets)<br></div><div>- enable_backdoor_starting_port (tcp sockets with port number hint)<br>
</div><div></div><div><br></div><div>Why would we not implement them all?  I'm willing to take on the first and third as a starting point.  My current patch only does the third, but adding the first would be easy.<br>
</div><div><br></div><div>Ray<br></div></div></div></div>