[Vortex] Bug? Channel iterators returning channels that aren't open yet

Jens Alfke jens at mooseyard.com
Tue Apr 8 07:38:14 CEST 2008


I believe I'm running into a race condition in Vortex (current SVN),  
where client code can open a channel asynchronously, and then using  
vortex_connection_get_channel_by_func can find that VortexChannel  
before it's been fully opened. If it sends a message over that  
channel, the message can go over the socket before the channel's been  
created, causing the remote peer to panic and abort the connection.

I'm definitely seeing an intermittent bug with that effect (one peer  
complains about getting a message for a nonexistent channel). It  
frustratingly goes away if I turn on full logging, but I'm seeing some  
other results that strongly suggest that  
vortex_connection_get_channel_by_func is showing me channels whose  
VortexOnChannelCreated callbacks haven't been called yet.

I'm about to change my code to stop iterating over the channel list,  
since this behavior's causing other problems for me too; that should  
work around the problem. But I wanted to note its existence so that it  
could be fixed. Sorry I don't have a test case, but maybe my  
description will be of help to an expert looking through the Vortex  
code.

—Jens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1875 bytes
Desc: not available
Url : http://lists.aspl.es/pipermail/vortex/attachments/20080407/b75c2ff1/attachment.bin 


More information about the Vortex mailing list