[IPython-dev] Two frontends, one kernel

Doug Blank doug.blank at gmail.com
Thu May 1 16:24:11 EDT 2014


On Thu, May 1, 2014 at 4:01 PM, MinRK <benjaminrk at gmail.com> wrote:

> All of those DEALER sockets should be ROUTER sockets. The DEALER behavior
> is correct for only one peer, but it will round-robin replies if there is
> more than one.
>

If I change the ShellChannel to ROUTER then the kernel will no longer
respond.

If I change the others to ROUTER, then I don't see a difference with prior
behavior.



>  Clearly some documentation is wrong. Where did you get the suggestion
> that they should be DEALER sockets?
>

Probably a combination of finding what would work, and looking at other
code (it is sometimes hard to translate code and docs between different ZMQ
libraries).

Thank you for helping me track this down!

-Doug


>
> -MinRK
>
>
> On Thu, May 1, 2014 at 12:45 PM, Doug Blank <doug.blank at gmail.com> wrote:
>
>> On Thu, May 1, 2014 at 2:37 PM, MinRK <benjaminrk at gmail.com> wrote:
>>
>>> What are your socket types on the Kernel side?
>>>
>>
>> Here is the definitions for our channels:
>>
>>     public class ShellChannel : Channel {
>>     base(session, auth, transport, address, port, SocketType.DEALER) {
>>             }
>>     }
>> public class IOPubChannel : Channel {
>>     base(session, auth, transport, address, port, SocketType.PUB) {
>>             }
>>     }
>> public class ControlChannel : Channel {
>>     base(session, auth, transport, address, port, SocketType.DEALER) {
>>             }
>>     }
>> public class StdInChannel : Channel {
>>     base(session, auth, transport, address, port, SocketType.DEALER) {
>>             }
>>     }
>> public class HeartBeatChannel : Channel {
>>      base(session, auth, transport, address, port, SocketType.REP) {
>>             }
>>     }
>>
>> Could that really effect multi-frontend, but not single?
>>
>> -Doug
>>
>>
>>
>>>
>>>
>>> On Thu, May 1, 2014 at 9:58 AM, Doug Blank <doug.blank at gmail.com> wrote:
>>>
>>>> Devs, I have been trying to find the cause of this bug for some time,
>>>> and I thought that someone might be able to provide a hint as to where to
>>>> look to find the issue.
>>>>
>>>> We have an external kernel that works very well when you connect onto
>>>> it with a single frontend. But when you connect two frontends (console or
>>>> notebook), then the conversation gets confused.
>>>>
>>>> More detail:
>>>>
>>>> Terminal 1:
>>>>
>>>> ipython console --profile calico
>>>>
>>>> works fine.
>>>>
>>>> Terminal 2:
>>>>
>>>> ipython console --profile calico --existing
>>>>
>>>> starts, but now things are confused. Now, each terminal takes turns
>>>> being able to get the prompt. If run in notebook, then code execution never
>>>> signals the end of computing (the [*] never turns to a number, but you can
>>>> still enter and get results back). In the console, output is received, but
>>>> the prompt is in the other terminal.
>>>>
>>>> It works fine with a single front end.
>>>>
>>>> Any ideas appreciated!
>>>>
>>>> -Doug
>>>>
>>>> _______________________________________________
>>>> IPython-dev mailing list
>>>> IPython-dev at scipy.org
>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> IPython-dev mailing list
>>> IPython-dev at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>
>>>
>>
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.org
>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>
>>
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20140501/9f01a085/attachment.html>


More information about the IPython-dev mailing list