[Paraview] ParaView 3.12.0 hanging

Burlen Loring bloring at lbl.gov
Tue Feb 21 13:18:35 EST 2012


Hi Goodwin,

There is a bug in vtkSocket::Receive, where the error condition is not 
tested for in return from recv socket call on *nix systems. It may or 
may not be the source of/related to the issue that you are having but 
it's certainly could cause ParaView to hang silently. Sorry that I 
didn't submit the patch sooner, am way behind on the "new" git work 
flow. I've filed the bug report 
http://www.paraview.org/Bug/view.php?id=12955, hope it can make it into 
3.14.

Burlen

On 02/21/2012 09:18 AM, Goodwin Lawlor wrote:
> Following up on this.
>
> I built a debug 32bit version of ParaView 3.14.0-RC2 client on Win7
>
> It hangs on connecting to a remote server (linux 64bit) too.
>
> Here's the backtrace:
>
>      ntdll.dll!7714f8c1()
>      mswsock.dll!73be6f0f()
>      mswsock.dll!73be76a6()
>      ws2_32.dll!763170fa()
>      wsock32.dll!73fe17db()
> >    paraview.exe!vtkSocket::Receive(void * data, int length, int 
> readFully)  Line 607 + 0x1c bytes    C++
>      paraview.exe!vtkSocketCommunicator::ReceivePartialTagged(void * 
> data, int wordSize, int numWords, int tag, const char * logName)  Line 
> 907 + 0x19 bytes    C++
>      paraview.exe!vtkSocketCommunicator::ReceiveTagged(void * data, 
> int wordSize, int numWords, int tag, const char * logName)  Line 
> 897    C++
>      paraview.exe!vtkSocketCommunicator::ReceiveVoidArray(void * data, 
> int length, int type, int remoteProcessId, int tag)  Line 367 + 0x34 
> bytes    C++
>      paraview.exe!vtkCommunicator::Receive(unsigned char * data, int 
> maxlength, int remoteHandle, int tag)  Line 214 + 0x21 bytes    C++
>      paraview.exe!vtkCommunicator::Receive(vtkMultiProcessStream & 
> stream, int remoteId, int tag)  Line 1658 + 0x1f bytes    C++
>
> paraview.exe!vtkMultiProcessController::Receive(vtkMultiProcessStream 
> & stream, int remoteId, int tag)  Line 1329 + 0x17 bytes    C++
>
> paraview.exe!vtkSMSessionClient::PullState(paraview_protobuf::Message 
> * message)  Line 590    C++
>
> paraview.exe!vtkSMRemoteObject::PullState(paraview_protobuf::Message * 
> msg)  Line 158 + 0x2f bytes    C++
>      
> paraview.exe!vtkSMProxyDefinitionManager::SynchronizeDefinitions() 
>  Line 87 + 0xc bytes    C++
>
> paraview.exe!vtkSMPluginManager::LoadPluginConfigurationXMLFromString(const 
> char * xmlcontents, vtkSMSession * session, bool remote)  Line 179    C++
>      paraview.exe!pqPluginManager::loadPluginsFromSettings(pqServer * 
> server)  Line 163 + 0x7b bytes    C++
>      paraview.exe!pqPluginManager::qt_static_metacall(QObject * _o, 
> QMetaObject::Call _c, int _id, void * * _a)  Line 63 + 0x11 bytes    C++
>      QtCored4.dll!QMetaObject::activate(QObject * sender, const 
> QMetaObject * m, int local_signal_index, void * * argv)  Line 3547 + 
> 0x2e bytes    C++
>      paraview.exe!pqServerManagerModel::preServerAdded(pqServer * _t1) 
>  Line 210 + 0x17 bytes    C++
>      paraview.exe!pqServerManagerModel::onConnectionCreated(int id) 
> Line 472    C++
>      paraview.exe!pqServerManagerModel::qt_static_metacall(QObject * 
> _o, QMetaObject::Call _c, int _id, void * * _a)  Line 159 + 0x18 bytes 
>   C++
>      QtCored4.dll!QMetaObject::activate(QObject * sender, const 
> QMetaObject * m, int local_signal_index, void * * argv)  Line 3547 + 
> 0x2e bytes    C++
>      paraview.exe!pqServerManagerObserver::connectionCreated(int _t1) 
> Line 171 + 0x17 bytes    C++
>      paraview.exe!pqServerManagerObserver::connectionCreated(vtkObject 
> * __formal, vtkObject * __formal, vtkObject * __formal, void * 
> callData)  Line 113    C++
>      paraview.exe!pqServerManagerObserver::qt_static_metacall(QObject 
> * _o, QMetaObject::Call _c, int _id, void * * _a)  Line 91 + 0x2c 
> bytes    C++
>      QtCored4.dll!QMetaObject::activate(QObject * sender, const 
> QMetaObject * m, int local_signal_index, void * * argv)  Line 3547 + 
> 0x2e bytes    C++
>      paraview.exe!vtkQtConnection::EmitExecute(vtkObject * _t1, 
> unsigned long _t2, void * _t3, void * _t4, vtkCommand * _t5)  Line 104 
> + 0x17 bytes    C++
>      paraview.exe!vtkQtConnection::Execute(vtkObject * caller, 
> unsigned long e, void * call_data)  Line 75    C++
>      paraview.exe!vtkQtConnection::DoCallback(vtkObject * vtk_obj, 
> unsigned long event, void * client_data, void * call_data)  Line 63    
> C++
>      paraview.exe!vtkCallbackCommand::Execute(vtkObject * caller, 
> unsigned long event, void * callData)  Line 42 + 0x1d bytes    C++
>      paraview.exe!vtkSubjectHelper::InvokeEvent(unsigned long event, 
> void * callData, vtkObject * self)  Line 602 + 0x1f bytes    C++
>      paraview.exe!vtkObject::InvokeEvent(unsigned long event, void * 
> callData)  Line 770 + 0x17 bytes    C++
>      paraview.exe!vtkProcessModule::RegisterSession(vtkSession * 
> session)  Line 279    C++
>      paraview.exe!vtkSMSession::ConnectToRemote(const char * hostname, 
> int port, bool allowRemoteRendering)  Line 262 + 0x12 bytes    C++
>      paraview.exe!vtkSMSession::ConnectToRemote(const char * hostname, 
> int port)  Line 247 + 0xf bytes    C++
>      paraview.exe!pqObjectBuilder::createServer(const pqServerResource 
> & resource)  Line 930 + 0x7a bytes    C++
>      paraview.exe!pqServerLauncher::connectToPrelaunchedServer()  Line 
> 520 + 0xc bytes    C++
>      paraview.exe!pqServerLauncher::connectToServer()  Line 488 + 0x17 
> bytes    C++
>
> paraview.exe!pqServerConnectReaction::connectToServerUsingConfiguration(const 
> pqServerConfiguration & config)  Line 114 + 0x8 bytes    C++
>      paraview.exe!pqServerConnectReaction::connectToServer()  Line 92 
> + 0xe bytes    C++
>      
> paraview.exe!pqServerConnectReaction::connectToServerWithWarning() 
>  Line 83    C++
>      paraview.exe!pqServerConnectReaction::onTriggered()  Line 66 + 
> 0x13 bytes    C++
>      paraview.exe!pqReaction::qt_static_metacall(QObject * _o, 
> QMetaObject::Call _c, int _id, void * * _a)  Line 52 + 0xf bytes    C++
>      QtCored4.dll!QMetaObject::activate(QObject * sender, const 
> QMetaObject * m, int local_signal_index, void * * argv)  Line 3547 + 
> 0x2e bytes    C++
>      QtGuid4.dll!QAction::triggered(bool _t1)  Line 277 + 0x15 
> bytes    C++
>      QtGuid4.dll!QAction::activate(QAction::ActionEvent event)  Line 
> 1259    C++
>      QtGuid4.dll!QAction::trigger()  Line 218 + 0x11 bytes    C++
>      QtGuid4.dll!QToolButton::nextCheckState()  Line 1145    C++
>      QtGuid4.dll!QAbstractButtonPrivate::click()  Line 529    C++
>      QtGuid4.dll!QAbstractButton::mouseReleaseEvent(QMouseEvent * e) 
> Line 1122    C++
>      QtGuid4.dll!QToolButton::mouseReleaseEvent(QMouseEvent * e)  Line 
> 719    C++
>      QtGuid4.dll!QWidget::event(QEvent * event)  Line 8362    C++
>      QtGuid4.dll!QAbstractButton::event(QEvent * e)  Line 1081    C++
>      QtGuid4.dll!QToolButton::event(QEvent * event)  Line 1161    C++
>      QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * 
> receiver, QEvent * e)  Line 4550 + 0x11 bytes    C++
>      QtGuid4.dll!QApplication::notify(QObject * receiver, QEvent * e) 
> Line 4093 + 0x2f bytes    C++
>      QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver, 
> QEvent * event)  Line 876 + 0x15 bytes    C++
>      QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject * 
> receiver, QEvent * event)  Line 234 + 0x38 bytes    C++
>      QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget * 
> receiver, QMouseEvent * event, QWidget * alienWidget, QWidget * 
> nativeWidget, QWidget * * buttonDown, QPointer<QWidget> & 
> lastMouseReceiver, bool spontaneous)  Line 3159 + 0xe bytes    C++
>      QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg) 
> Line 3363 + 0x2a bytes    C++
>      QtGuid4.dll!QtWndProc(HWND__ * hwnd, unsigned int message, 
> unsigned int wParam, long lParam)  Line 1696 + 0xc bytes    C++
>      user32.dll!767862fa()
>      user32.dll!76786d3a()
>      user32.dll!76786ce9()
>      user32.dll!767877c4()
>      user32.dll!7678788a()
>      QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum 
> QEventLoop::ProcessEventsFlag> flags)  Line 809    C++
>      QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum 
> QEventLoop::ProcessEventsFlag> flags)  Line 1202 + 0x15 bytes    C++
>      QtCored4.dll!QEventLoop::processEvents(QFlags<enum 
> QEventLoop::ProcessEventsFlag> flags)  Line 150    C++
>      QtCored4.dll!QEventLoop::exec(QFlags<enum 
> QEventLoop::ProcessEventsFlag> flags)  Line 204 + 0x2d bytes    C++
>      QtCored4.dll!QCoreApplication::exec()  Line 1148 + 0x15 bytes
>      QtGuid4.dll!QApplication::exec()  Line 3812    C++
>      paraview.exe!main(int argc, char * * argv)  Line 81 + 0x8 bytes
>      paraview.exe!WinMain(HINSTANCE__ * instance, HINSTANCE__ * 
> prevInstance, char * __formal, int cmdShow)  Line 131 + 0x12 bytes
>      paraview.exe!__tmainCRTStartup()  Line 547 + 0x2c bytes    C
>      paraview.exe!WinMainCRTStartup()  Line 371    C
>
>
>
> On 31/01/2012 08:11, Goodwin Lawlor wrote:
>> Utkarsh & John,
>>
>> Thanks for the tips! I'll investigate further.
>>
>> FWIW, this is how I checked out the source code:
>>
>> $ git checkout -b release-3.12.0 tags/v3.12.0
>> $ git submodule update
>>
>> Initially, I hadn't updated the submodule and did hit the version
>> incompatibility thing.
>>
>> Goodwin
>>
>> On 31/01/2012 03:44, Biddiscombe, John A. wrote:
>>> I've had the hanging problem a lot. Last time I found that my VTK ref
>>> was not quite the same as the ref that the paraview repo was asking
>>> for. When I corrected it, all was well, but it seems very sensitive to
>>> changes which (in my opinion) shouldn't have made any difference.
>>> Make sure git submodule update/status doesn't show any grotesque
>>> incompatibilities. It might help ...
>>>
>>> JB
>>>
>>> -----Original Message-----
>>> From: paraview-bounces at paraview.org
>>> [mailto:paraview-bounces at paraview.org] On Behalf Of Utkarsh Ayachit
>>> Sent: 30 January 2012 14:38
>>> To: Goodwin Lawlor
>>> Cc: paraview at paraview.org
>>> Subject: Re: [Paraview] ParaView 3.12.0 hanging
>>>
>>> The server is expected to complain once the client is killed. The real
>>> issue is the hanging part. Are these debug builds? Is it possible to
>>> produce a backtrace?
>>>
>>> Utkarsh
>>>
>>> On Mon, Jan 30, 2012 at 7:13 AM, Goodwin Lawlor<goodwin.lawlor at ucd.ie>
>>> wrote:
>>>> Hi All,
>>>>
>>>> We upgraded pvserver from 3.10 to 3.12
>>>>
>>>> Now when the client (Win7 64bit) connects remotely to the pvserver
>>>> (linux 64it), it hangs.
>>>>
>>>> When you kill the client, the server complains:
>>>>
>>>> Waiting for client
>>>> Connection URL: cs://localhost:11111
>>>> Client connected.
>>>> ERROR: In
>>>> /home/ec2-user/vol_30GB/codes/ParaView-3.12.0/VTK/Common/vtkSocket.cxx
>>>> , line
>>>> 572
>>>> vtkClientSocket (0x1208010): Socket error in call to send. Connection
>>>> reset by peer.
>>>>
>>>> ERROR: In
>>>> /home/ec2-user/vol_30GB/codes/ParaView-3.12.0/VTK/Parallel/vtkSocketCo
>>>> mmunicator.cxx,
>>>> line 737
>>>> vtkSocketCommunicator (0x10f6da0): Could not send message.
>>>>
>>>> ERROR: In
>>>> /home/ec2-user/vol_30GB/codes/ParaView-3.12.0/VTK/Parallel/vtkSocketCo
>>>> mmunicator.cxx,
>>>> line 766
>>>> vtkSocketCommunicator (0x10f6da0): Could not receive tag. 1
>>>>
>>>> GetIsConnected 1
>>>> Exiting...
>>>>
>>>>
>>>> Any ideas?
>>>>
>>>> Thanks,
>>>>
>>>> Goodwin
> _______________________________________________
> Powered by 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 --------------
A non-text attachment was scrubbed...
Name: vtkSocket.cxx.patch
Type: text/x-patch
Size: 1111 bytes
Desc: not available
URL: <http://www.paraview.org/pipermail/paraview/attachments/20120221/42b5e319/attachment.bin>


More information about the ParaView mailing list