![]() Which was really strange because I was connected from the very same desktop PC via SSH and using shell without any problem. Ping worked, but curl or telnet always got connection timeout. But sometimes something just cracked and from that moment RPi was not able to connect to my desktop PC at all. During the library refresh process, these failures (connect timed out) happened from time to time. Failed connect for directory listing made OSMC to believe directory is not there anymore an removed it's files from library. Since the PASV mode is used, getting the content (of the directory / file) means, after receiving new port number for data transfer from FTP server, opening new TCP connection to new target TCP port for every directory / file. The problem occurred when OSMC was doing lots and lots of calls one after another through curl to my FTP server (listing lot's of directories and reading files). Today I spent few hours finding out why OSMC running on my RPi3 can't correctly refresh music and videos library, files of which reside on my desktop PC and are accessed from RPi through FTP (local LAN, so no SSL). I don't suspect curl, but rather TCP stack. Until that moment TCP traffic is obviously correct as expected. I was doing TCP packet capture (tcpdump on RPi / WireShark on server) and at the moment when it gets stuck (and will eventually throw connect timeout) RPi's TCP stack thinks it sent 1st SYN packet to new target port, but server never receives it. It really can be even 1st or 2nd (when running again after previous hang), but also something around 80. something resembling some periodic resource exhaustion). At least I am not able to spot any pattern (eg. ![]() Code: Select all bash> for i in do curl -user xxx:xxx echo "$i NEXT" done ![]()
0 Comments
Leave a Reply. |