[ 
https://issues.apache.org/jira/browse/PROTON-1745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Justin Ross updated PROTON-1745:
--------------------------------
    Summary: [proton-c] PN_CONNECTION_BOUND event is emitted too soon  (was: 
[proton-c, regression] PN_CONNECTION_BOUND event is emitted too soon)

> [proton-c] PN_CONNECTION_BOUND event is emitted too soon
> --------------------------------------------------------
>
>                 Key: PROTON-1745
>                 URL: https://issues.apache.org/jira/browse/PROTON-1745
>             Project: Qpid Proton
>          Issue Type: Bug
>    Affects Versions: proton-c-0.20.0
>         Environment: Fedora 27
>            Reporter: Chuck Rolke
>            Assignee: Cliff Jansen
>            Priority: Major
>              Labels: regression
>             Fix For: proton-c-0.20.0
>
>         Attachments: p1745_0.diff
>
>
> During a PN_CONNECTION_BOUND event proton socket information is not 
> available. At  PN_CONNECTION_REMOTE_OPEN the info is available.
> I instrumented an event loop in qpid-dispatch to log the event names as they 
> are delivered and to log the result of creating a qd_connection rhost_port 
> name. The source:
> {noformat}
>     case PN_CONNECTION_BOUND:
>         on_connection_bound(qd_server, e);
>         // HACK ALERT
>         pn_connection_t *pn_conn = pn_event_connection(e);
>         qd_connection_t *qd_conn = pn_connection_get_context(pn_conn);
>         set_rhost_port(pn_conn, qd_conn);
>         qd_log(qd_server->log_source, QD_LOG_CRITICAL, 
>             "At end of connection bound the name is: %s", 
> qd_connection_name(ctx));
>         // END HACK ALERT
>         break;
>     case PN_CONNECTION_REMOTE_OPEN:
>         {
>         // HACK ALERT
>         pn_connection_t *pn_conn = pn_event_connection(e);
>         qd_connection_t *qd_conn = pn_connection_get_context(pn_conn);
>         set_rhost_port(pn_conn, qd_conn);
>         qd_log(qd_server->log_source, QD_LOG_CRITICAL, 
>             "At entry to remote open the name is: %s", 
> qd_connection_name(ctx));
>         /// END HACK ALERT
> {noformat}
>  
> The log file shows:
> {noformat}
> 2018-01-17 12:38:35.224859 -0500 SERVER (critical) ***** handle sees event: 
> PN_CONNECTION_INIT (/home/chug/git/qpid-dispatch/src/server.c:845)
> 2018-01-17 12:38:35.224868 -0500 SERVER (critical) ***** handle sees event: 
> PN_CONNECTION_BOUND (/home/chug/git/qpid-dispatch/src/server.c:845)
> 2018-01-17 12:38:35.224890 -0500 SERVER (critical) At end of connection bound 
> the name is: err: -6 (/home/chug/git/qpid-dispatch/src/server.c:887)
> 2018-01-17 12:38:35.224965 -0500 SERVER (critical) ***** handle sees event: 
> PN_CONNECTION_REMOTE_OPEN (/home/chug/git/qpid-dispatch/src/server.c:845)
> 2018-01-17 12:38:35.224971 -0500 SERVER (critical) At entry to remote open 
> the name is: 127.0.0.1:46722 
> (/home/chug/git/qpid-dispatch/src/server.c:895){noformat}
> The "err -6" is a snoop on the return result of getnameinfo(): EAI_FAMILY 
> 'ai_family' not supported. I suspect it's because the returned socket is junk.
> The code works correctly in 0.19.0, commit fe3c3



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to