BIND 10 #2398: msgq crash
BIND 10 Development
do-not-reply at isc.org
Tue Nov 27 13:21:37 UTC 2012
#2398: msgq crash
-------------------------------------+-------------------------------------
Reporter: jreed | Owner: vorner
Type: | Status: reviewing
defect | Milestone:
Priority: | Sprint-20121204
medium | Resolution:
Component: msgq | Sensitive: 0
Keywords: | Sub-Project: Core
Defect Severity: High | Estimated Difficulty: 4
Feature Depending on Ticket: | Total Hours: 0
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Changes (by jelte):
* owner: jelte => vorner
Comment:
Replying to [comment:9 vorner]:
> Hello
>
> There are still few things:
> * Would it be worth it unifying `send_prepared_msg` and
`__process_write`? They seem they share a lot of common code now.
Yeah the error checking can actually be done in __send_data(), as long as
it's allowed to return 'an integer or None' (None meaning 'socket seems
dead. destroyed it'); Updated.
> * Is it OK? Couldn't it lead to some kind of starvation of one socket
(if there was a really hight amount of data being sent, there'd always be
something to write to the socket and it wouldn't get to the read).
Arguably, there must be some reads somewhere to have writes, but there
still can be one socket that is unlucky.
er, what exactly is 'it'? In general, as long as actual data is sent, and
since it's not looping locally on EAGAIN-like codes (therefore either
diminishing the amount of data to send or doing the main loop and hitting
the reads as well), it should prefer sending as much data as the writers
accept, and then move on to the readers. But maybe I am completely
misunderstanding your comment :)
> * I don't like the way the running is set to false and then there's
waiting until the read times out. Shouldn't the poll be waken up somehow?
Waiting 2 seconds seems like a really long time.
Doh, I realized last night the timeout isn't necessary at all; we can just
add a second socket pair to control msgq. Done so (and removed the timeout
in msgq itself again); now the only timeout that is left is the backup one
to make sure the test doesn't get stuck for eternity.
--
Ticket URL: <http://bind10.isc.org/ticket/2398#comment:10>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list