"Error Splicing File Input/Output Error", but only on some files after HD full

Hi everyone, I’ve done the usual searching and I’ve tried a few things but I’m not sure how to proceed.

I have a secondary hard drive /dev/sda1 (EXT4) and when I try to copy CERTAIN files FROM it, I get a dialog box with “Error Splicing File - Input/Output Error” and it asks if I want to skip it or retry. Retry never works. I’ve tried different destination drives.

Relevant Event
I stream on Twitch (I’m one of the few people I know who runs OBS on Manjaro) and I record each of my streams to this drive. Last night, an OBS dialog popped up and told me the drive was full. After stream I deleted a few older video files but I noticed the free space on the drive still said zero.

I deleted a few more files and now, the drive shows 62GB free (its a 1TB drive).

I started copying all of the files off to another drive but I started getting the “Error Splicing File” error on what seems to be random files. A 15GB file will copy fine but a 11GB file will have the error. Sometimes, even a small file will have the error. I don’t get it.

ALSO (and this could be relevant) VLC will no longer play ANY video files. It opens and then immediately closes. BUT I CAN play all of the videos files in another video program, like MPV Media Player, VidCutter, etc.

Even more confusing is ALL of the “Error Splicing File” videos DO PLAY ALL THE WAY THROUGH in these other video programs.

I know that OBS uses VLC to perform some tasks, like saving the stream to a .mov file. Is there some invisible, corrupted VLC temp file somewhere that happened when the drive ran out of space?

Anyway, I did the following:

# umount /dev/sda1

# fsck -f /dev/sda1
fsck from util-linux 2.38.1
e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
data2: 1738753/61054976 files (1.1% non-contiguous), 225176133/244190208 blocks

But that didn’t fix any of the “Error Splicing File” files.

Any ideas? What’s wrong with VLC?

Thanks

Hello @rob215x :wink:

Please don’t let us poke around and guess. What file system?

sudo parted -l
lsblk --fs

Commonly that happens when there is a file size restriction. So FAT32 in most cases (4GB).

It could be also possible that your ext4 HDD is very fragmented… what happens with live streams and moreover when the disk is full. Defragment it:

# Check if defragmentation is needed
sudo e4defrag -c -v /path/to/mountpoint
# Actually do defragmentation
sudo e4defrag -v /path/to/mountpoint

Normally, it can automatically defragment on writing if enough space is available.


In addition also check for badblock (if it is rotating disk):

sudo fsck.ext4 -fcck /dev/sdXY

Of course unmounted. That can take a lot of time, but it adds badblocks to a blacklist, so ext4 will not touch such blocks.

Sorry I left that out. Filesystem is EXT4

Just tried the e4defrag -c -v suggestion:

 Total/best extents				3303728/3127349
 Average size per extent			302 KB
 Fragmentation score				1
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (/run/media/design215/data2) does not need defragmentation.
 Done.

The drive is a 1TB SSD so not a rotating drive. Should I still check for bad blocks?

I mentioned VLC because I don’t think its a coincidence that VLC no longer works. Could there be some undeleted temp file from VLC that’s causing issues?

No.

Note that a hard disk drive, as you mentioned, is not a solid state disk. I mentioned this because you said it is a hard disk.

Possibly, but I would say no.

I just used Timeshift to restore my system to 2023-01-17 and VLC works now.

The files are still broken but VLC plays them now. There is a spot in the file, where its broken and if I let VLC just play, it stops at that point. But if I manually drag the progress bar just past the bad spot, the rest of the video file plays fine.

So, I’m not sure what to do next. Maybe a repair utility like DDRescue??