nschlia / ffmpegfs

FUSE-based transcoding filesystem with video support from many formats to FLAC, MP4, TS, WebM, OGG, MP3, HLS, and others.
https://nschlia.github.io/ffmpegfs/
GNU General Public License v3.0
196 stars 14 forks source link

Ocassional crashes of test_filesize_hls under Debian 12 #144

Closed nschlia closed 1 year ago

nschlia commented 1 year ago

The test_filesize_hls occasionaly crashes under Debian 12 only:

> TRANSCODING 000001.ts
./funcs.sh: line 124: 685360 Bus error               (core dumped) ffmpegfs -f "${SRCDIR}" "${DIRNAME}" --logfile=${0##*/}${EXTRANAME}.builtin.log --log_maxlevel=TRACE --cachepath="${CACHEPATH}" --desttype=${DESTTYPE} ${ADDOPT} > /dev/null
***TEST FAILED***
Return code: 99
Return code: 99
ERROR test_filesize_hls (exit status: 99)

Does not happen often, and never under Debian 11.

Crash occurs around line 925 in buffer.cc;

memcpy(out_data, ci->m_buffer + offset, bufsize);

out_data and ci->m_buffer are perfectly valid, the buffer can be accessed at offset and is large enough to allow bufsize files to be copied.

(gdb) bt
#0  __memcpy_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:469
#1  0x0000560a011afb84 in Buffer::copy(unsigned char*, unsigned long, unsigned long, unsigned int)
    (this=0x7fb49004b8b0, out_data=0x7fb49009ed90 '\376' <repeats 200 times>..., offset=1441792, bufsize=131072, segment_no=1) at buffer.cc:925
#2  0x0000560a0118f023 in transcoder_read(Cache_Entry*, char*, unsigned long, unsigned long, int*, unsigned int)
    (cache_entry=0x7fb490007bc0, buff=0x7fb49009ed90 '\376' <repeats 200 times>..., offset=1441792, len=131072, bytes_read=0x7fb4d2d96d84, segment_no=1) at transcode.cc:579
#3  0x0000560a0117bb67 in ffmpegfs_read(char const*, char*, size_t, off_t, fuse_file_info*)
    (path=0x7fb490000c40 "/snowboard.mp4/000001.ts", buf=0x7fb49009ed90 '\376' <repeats 200 times>..., size=131072, offset=1441792, fi=0x7fb4d2d97110) at fuseops.cc:1232
#4  0x00007fb4e47fe1bf in fuse_fs_read_buf () at /lib/x86_64-linux-gnu/libfuse.so.2
#5  0x00007fb4e47fe3a2 in  () at /lib/x86_64-linux-gnu/libfuse.so.2
#6  0x00007fb4e4807acb in  () at /lib/x86_64-linux-gnu/libfuse.so.2
#7  0x00007fb4e4808093 in  () at /lib/x86_64-linux-gnu/libfuse.so.2
#8  0x00007fb4e48050e4 in  () at /lib/x86_64-linux-gnu/libfuse.so.2
#9  0x00007fb4e1ca7fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#10 0x00007fb4e1d2866c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Memory:

(gdb) p *ci
$2 = {m_cachefile = "/tmp/tmp.klcsXdJHMv/ffmpegfs//tmp/tmp.owkDThiMPA//home/jenkins/workspaces/workspace/ffmpegfs (local-latest)/test/srcdir/snowboard.mp4.000001.ts.cache.ts", 
  m_fd = 11, m_buffer = 0x7fb483a00000 "G@\021\020", m_buffer_pos = 5602262, m_buffer_watermark = 5602262, m_buffer_size = 5602262, m_seg_finished = true, m_cachefile_idx = "", 
  m_fd_idx = -1, m_buffer_idx = 0x0, m_buffer_size_idx = 0, m_flags = 1, m_buffer_write_size = 0, m_buffer_writes = 0}
nschlia commented 1 year ago

test_filesize_hls.builtin.log test_filesize_hls.log

nschlia commented 1 year ago

This appears to be resolved; if it occurs again, it will be reopened.

nschlia commented 1 year ago

As if I did not expect it: still happening.