Opened 10 years ago

Closed 9 years ago

#126 closed defect (fixed)

xfrout hang

Reported by: jreed Owned by: jelte
Priority: low Milestone:
Component: Unclassified Version:
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity:
Sub-Project: Feature Depending on Ticket:
Estimated Difficulty: 0.0 Add Hours to Ticket:
Total Hours: Internal?: no

Description

I pressed Ctrl-C in a running b10-xfrout:

^CException in thread Thread-1:
Traceback (most recent call last):
  File "/usr/pkg/lib/python3.1/threading.py", line 509, in _bootstrap_inner
    self.run()
  File "/usr/pkg/lib/python3.1/threading.py", line 462, in run
    self._target(*self._args, **self._kwargs)
  File "/home/reed/opt/bind10/libexec/bind10-devel/b10-xfrout", line 316, in listen_on_xfr_query
    unix_socket_server.serve_forever()
  File "/usr/pkg/lib/python3.1/socketserver.py", line 224, in serve_forever
    r, w, e = select.select([self], [], [], poll_interval)
select.error: (4, 'Interrupted system call')

And it hung ... my prompt didn't come back. A minute later I pressed Ctrl-C twice:

^C^C[b10-xfrout]  No answer from configuration manager

And finally it exited.

I didn't have any configuration manager running in the first place. The executable didn't complain that it wasn't running. Just msgq was running.

Subtickets

Change History (7)

comment:1 Changed 10 years ago by zhanglikun

I have added some code to catch this exception.
But xfrout will still hang if config manager doesn't run. Config manager is supposed to always be running. Same problem occurs if you for instance send a command to any module and it crashes, you'll also be waiting forever for an answer
There should be a timeout and failure recovery from this. msgq should add one timeout interface to receive message response.

comment:2 Changed 10 years ago by zhanglikun

Oh the code is added in trunk reversion 1662.

comment:3 Changed 10 years ago by jreed

I will test this.

comment:4 Changed 10 years ago by jreed

  • Owner set to jreed
  • Status changed from new to accepted

comment:5 Changed 10 years ago by jreed

The exception is gone. But yes still hangs like you said. Who will research the timeout interface?

comment:6 Changed 10 years ago by zhanglikun

  • Owner changed from jreed to jelte
  • Status changed from accepted to assigned

Hi Jelte, will you plan to add the timeout interface to msgq? or left it to Michael?

comment:7 Changed 9 years ago by jelte

  • billable set to 0
  • Estimated Difficulty set to 0.0
  • Internal? unset
  • Resolution set to fixed
  • Status changed from assigned to closed

Yes, msgq now has timeouts. Tested it to be sure; if i only start msgq and xfrout, xfrout fails on a timeout getting information from the configmanager.

Closing ticket.

Note: See TracTickets for help on using tickets.