sorry, this problem is nothing to do with libbsd. The rtems/cpukit/ftpd/ftpd.c add a new function yield(),<br>this function makes the problem.<br><br>static void<br>yield(void)<br>{<br>/*<br> * If we build not for the legacy network stack, then we use the libbsd.  In<br> * the libbsd there is no global network stack semaphore which provides round<br> * robin fairness for threads of equal priority.<br> */<br>#ifndef RTEMS_NETWORKING<br>  yield();<br>#endif<br>}<br><br>recursive invocation yield() make the function do not return. I use rtems_task_wake_after(0) replace the yield,<br>ftp server works correctly.<div><div><br></div><div><br></div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>From: </b> "jameszxj"<jameszxj@gmail.com>;</div><div><b>Date: </b> Fri, May 4, 2018 12:00 PM</div><div><b>To: </b> "devel"<devel@rtems.org>;<wbr></div><div></div><div><b>Subject: </b> ftp server upload filer error.</div></div><div><br></div>hi,<br> I update libbsd to the github version, and when i upload a file, the upload process failed at the end, and the target shell stuck.<br> I disconnect from the ftp client, shell print the msg<br>          debug: _bsd_sonewconn: pcb 0x15df2000: Listen queue overflow: 2 already in queue awaiting acceptance (1 occurrences)<br><br> The target still respond the ping command.<br></div>