home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.protocols.tcp-ip      TCP and IP network protocols.      14,669 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 12,937 of 14,669   
   Fernando Nunes to All   
   TCP send()/recv lock....   
   23 Jun 09 00:05:26   
   
   From: domusonline@gmail.com   
      
   Hello,   
      
   I have a very weird (at least for me) situation that I think has to do with   
   some TCP layer issue that's way off my knowledge.   
   I have a database system using a storage manager to do it's backups. There is a   
   standar API for this. The storage manager functions implementing that API send   
   the data to another machine that they call media server. The communication is   
   using TCP. The storage manager process associated with the database is   
   send()ing the data to the media server. In a single socket connection we're   
   sending at most something like 60GB. The database side is HP-UX 11.31i and the   
   media server is Linux (can't specify the exact version at the moment).   
      
   After sending a lot of data some of the processes (not all/every time) get   
   "stuck". The SM database side is blocked in a send(). The process on the media   
   server is on recv(), but no data is being send. I can't think of any "normal"   
   explanation for this... I search around and found that the sending end may   
   think that the other side has not receiving window, but the TCP stack was built   
   to avoid that... The storage manager supplier doesn't seem able to debug it,   
   and I found nothing that points clearly to a problem... only vague   
   possibilities that are usually hard to test.   
      
   My questions:   
      
   - Does this ring a bell to anyone?   
   - What issues may cause a similar situation?   
   - What more should I do to debug it? A tcpdump could be helpful, but the output   
   would be massive and hard to handle...   
   - After a while the media server end (the one receiving the data) notices that   
   it hasn't receive any data in a definable period of time, and closes the   
   process (and it's sockets). On the sending end the socket changes to CLOSE_WAIT   
   and the process doesn't abort neither seems to receive the usual SIGPIPE. Any   
   possible explanation for this (like socket options?) It just keeps on the   
   send() function...   
      
   Thanks for any pointers or suggestions. I can gather more details if needed,   
   but the code is closed source, so my only option is to truss/strace it...   
      
   Regards!   
      
   --   
   Fernando Nunes   
   Portugal   
      
   http://informix-technology.blogspot.com   
   My email works... but I don't check it frequently...   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca