Unfortunately the bug is still observed - i did some additional triaging.
* The bug is seen only when the samba share exported is on a vfat file system
- for ext2 and ext3 the large sized copy succeeds without fail.
* I also tried using the samba package from debian-arm repositories(lenny-stable)
- but there also the problem is seen.
* Even if the error is thrown up - the file is still being copied in the background - or ftruncate'ing in the background (I suspect it is only ftruncating and filling the space with zeroes because of two reasons - one the md5sums do not match afterwards and two the code seems to be doing the same thing) - but as previously stated adding a patch to always call ftruncate64() in sys_ftruncate() does not fix the problem.
# cat log.smbd
[2009/08/15 00:00:07, 0] lib/pidfile.c:121(pidfile_create)
ERROR: smbd is already running. File /usr/local/samba/var/locks/smbd.pid exists and process id 687 is running.
삼바가 구동중에 제대로 종료되지 않고 재가동 될경우
$PIDDIR/smbd.pid
$PIDDIR/nmbd.pid
파일이 남아 있다 보면, 위와 같이 이미 구동중으로 착각을 하고
smbd나 nmbd를 구동하는데 실패를 한다.
fork() / execl() 로 구동시에는
waitpid() 에서 벗어 나지 못하고 멈추는 현상이 발생했다.
결론 : 혹시 모르니 종료가 불확실한 시스템(임베디드?)에서는 삼바 구동 이전에 pid 파일을 지워주도록 하는게 좋을듯 하다.
An exception to these rules appears to be with UDP/RTP streams, where it may look like:
udp://@:portnumber
# Example: # udp://@:1234 # # Apparently the @ has a meaning like localhost, though # udp://localhost:1234 # doesn't seem to work in this circumstance, for some reason. [링크 : http://wiki.videolan.org/MRL]