[Paraview] vtkSocket bugs

Burlen Loring bloring at lbl.gov
Fri Apr 15 14:42:07 EDT 2011


Hmm,  I had tested it on XP with PV 3.8.1 and didn't have any problems. 
sorry about that, I'll have to try again.

Burlen

On 04/14/2011 07:54 PM, David Partyka wrote:
> Hi Burlen, I had to revert your patch as it doesn't compile on Windows..
>
> You will have to make sure it compiles there as well and resubmit your 
> patch. If you need any help please let me know. Thanks.
>
> On Thu, Apr 14, 2011 at 3:51 PM, David Partyka 
> <david.partyka at kitware.com <mailto:david.partyka at kitware.com>> wrote:
>
>     Thanks Burlen, This is applied for 3.10.2.
>
>
>     On Thu, Apr 14, 2011 at 2:11 PM, Burlen Loring <bloring at lbl.gov
>     <mailto:bloring at lbl.gov>> wrote:
>
>         Thanks Dave,
>
>         Filed the bug report http://www.paraview.org/Bug/view.php?id=12087
>
>         I updated the patch for 3.10.0 as well (attached here and on
>         the bug report).
>
>         Burlen
>
>
>         On 04/13/2011 11:24 AM, David Partyka wrote:
>>         Humm, I forgot all about this email. I'll stick it in right
>>         now for 3.10.2. If you don't mind please file a bug so that
>>         it isn't forgotten.
>>
>>         On Wed, Apr 13, 2011 at 2:17 PM, Burlen Loring
>>         <bloring at lbl.gov <mailto:bloring at lbl.gov>> wrote:
>>
>>             Hi Dave,
>>
>>             What is the status on this?
>>
>>             Burlen
>>
>>
>>             On 02/27/2011 02:53 PM, David Partyka wrote:
>>>             Thanks Burlen, We'll take a look.
>>>
>>>             On Sun, Feb 27, 2011 at 5:18 PM, Burlen Loring
>>>             <bloring at lbl.gov <mailto:bloring at lbl.gov>> wrote:
>>>
>>>                 Hi,
>>>
>>>                 While installing ParaView on Nautilus,
>>>                 http://www.nics.tennessee.edu/computing-resources/nautilus,
>>>                 I hit a bug in vtkSocket that prevents ParaView from
>>>                 running on this machine. While tracking this down I
>>>                 uncovered a couple related issues.
>>>
>>>                 The main issue is that vtkSocket does not handle
>>>                 EINTR. EINTR occurs when a signal is caught by the
>>>                 application during a blocking socket call. While
>>>                 ParaView does not make use of signals they are used
>>>                 for asynchronous communication by some SGI specific
>>>                 libraries on Nautilus that are linked in with SGI
>>>                 MPI. Because Rank 0 pvserver spends quite a bit of
>>>                 its time blocked in socket calls it only takes a few
>>>                 10s of seconds for EINTR to occur. When faced with
>>>                 EINTR ParaView silently exits leaving the user
>>>                 wondering what the heck happened. Which brings me to
>>>                 the second issue, a lack of error reporting in
>>>                 vtkSocket.
>>>
>>>                 To solve the first issue vtkSocket has to handle
>>>                 EINTR. How EINTR should be handled depends on the
>>>                 specific socket call. For all calls except connect
>>>                 the call can simply be restarted. For EINTR during
>>>                 connect one can't restart the call on all unix, so
>>>                 instead one must block in a select call when connect
>>>                 fails with EINTR. To be portable across Unix one
>>>                 should handle EINTR in all socket calls, even simple
>>>                 ones like set/getsockopt.
>>>
>>>                 The second issue of error reporting applies to all
>>>                 socket related errors in general, my feeling is that
>>>                 when a socket call fails vtkSocket should print a
>>>                 message using vtkErrorMacro, errno, and strerror(or
>>>                 windows equivalent) at the point of failure. I think
>>>                 this should be done inside vtkSocket because this is
>>>                 the only place one can safely assume errno has
>>>                 relevant information and vtkSocket has been
>>>                 implemented returning a single error code, -1, so
>>>                 that returning the real error code would change the
>>>                 API and break existing code, including ParaView. Not
>>>                 to mention that the values for error codes are
>>>                 apparently different on windows and unix.
>>>
>>>                 I took a stab at fixing these issues, patches
>>>                 attached. I tested them on my workstation, nautilus,
>>>                 and laptop running xp. I ran a dashboard on my linux
>>>                 workstation and didn't see any related issues. Would
>>>                 someone at KW mind taking a look at the changes and
>>>                 see if it could be made permanent?
>>>
>>>                 By the way after testing all socket calls for error
>>>                 returns I uncovered a third bug, vtkSocket::Close
>>>                 didn't set the descriptor ivar to -1 which resulted
>>>                 in vtkSocket::~vtkSocket calling close on a closed
>>>                 socket. Not a disasterous error, but this reinforces
>>>                 my opinion that the returns should be tested and
>>>                 error messages printed.
>>>
>>>                 Thanks
>>>                 Burlen
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>                 _______________________________________________
>>>                 Powered by www.kitware.com <http://www.kitware.com>
>>>
>>>                 Visit other Kitware open-source projects at
>>>                 http://www.kitware.com/opensource/opensource.html
>>>
>>>                 Please keep messages on-topic and check the ParaView
>>>                 Wiki at: http://paraview.org/Wiki/ParaView
>>>
>>>                 Follow this link to subscribe/unsubscribe:
>>>                 http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>>
>>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20110415/e3d188e9/attachment-0001.htm>


More information about the ParaView mailing list