MediaBrowser / Emby

Emby Server is a personal media server with apps on just about every device.
https://emby.media
GNU General Public License v2.0
4.14k stars 805 forks source link

Since upgrade to Version 3.5.2.0 Scan media stops at 89.5% #3411

Closed develroo closed 5 years ago

develroo commented 6 years ago

Not sure what is going on here but the scan never seems to finish but when I look at the Library folders section I don't see anything being updated. The log just seems to sit there.

grep -i  "Scan" embyserver.txt 
2018-08-21 20:16:52.141 Info TaskManager: IntervalTrigger fired for task: Scan media library
2018-08-21 20:16:52.141 Info TaskManager: Executing Scan media library

Dashboard

Library

What I do see is ffprobe hanging for some reason trying to scan a video file on an smb share.

emby 14951 37.5 0.5 278108 22952 ? S 21:27 1:02 /opt/emby-server/bin/ffprobe -i smb://192.168.0.102/TV-NAS/Wainwright Walks/S03/Wainwright Walks - S03E01 - Gateway to the Lakes.avi -threads 0 -v info -print_format json -show_streams -show_chapters -show_format But when I check the file on the server it is fine and ffprobe natively works no problem.

So replacing /opt/emby-server/bin/ffprobe with the native one seems to fix the problem and the scan proceeds.

For reference platform is Linux Debian 4.16.5-1 (2018-04-29) x86_64

LukePulverenti commented 6 years ago

Hi, are you still having an issue with this?

develroo commented 6 years ago

Hi, are you still having an issue with this?

Sadly yes. And I cannot work it out. Seems to halt on same files but when I run the command manually it proceeds with no error.

This is what the log is showing after it times out.


2018-09-12 22:07:21.157 Info TaskManager: Cloud & Folder Sync Completed after 0 minute(s) and 0 seconds
2018-09-12 22:07:21.158 Info TaskManager: ExecuteQueuedTasks
2018-09-12 22:18:11.726 Error App: Error in ffprobe
    *** Error Report ***
    Version: 3.5.2.0
    Command line: /opt/emby-server/system/EmbyServer.dll -programdata /var/lib/emby -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-deb_{version}_amd64.deb
    Operating system: Unix 4.16.0.1
    64-Bit OS: True
    64-Bit Process: True
    User Interactive: True
    Processor count: 2
    Program data path: /var/lib/emby
    Application directory: /opt/emby-server/system
    System.Exception: ffprobe failed for "smb://192.168.0.102/TV-zfsforn/Wainwright Walks/S03/Wainwright Walks - S03E02 - Heart of the Lakes.avi" - streams and format are both null.
       at Emby.Server.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, VideoType videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
       at Emby.Server.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, VideoType videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
       at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
       at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)
    System.Exception
       at Emby.Server.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, VideoType videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
       at Emby.Server.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, VideoType videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
       at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
       at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)

But running ffprobe directly on it is not a problem at all.


 ffprobe Wainwright\ Walks\ -\ S03E02\ -\ Heart\ of\ the\ Lakes.avi 
ffprobe version 3.2.12-1~deb9u1 Copyright (c) 2007-2018 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --prefix=/usr --extra-version='1~deb9u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Input #0, avi, from 'Wainwright Walks - S03E02 - Heart of the Lakes.avi':
  Duration: 00:29:13.64, start: 0.000000, bitrate: 1113 kb/s
    Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 640x352 [SAR 1:1 DAR 20:11], 973 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 127 kb/s

The thing is none of the other videos that are on that share have any problems either movies or other tv shows.

So I am kinda perplexed.

LukePulverenti commented 6 years ago

Hi, are you still seeing this with 3.5.3? Thanks.

develroo commented 6 years ago

Yeah.. Looks like ffprobe has a hissy fit over smb which is weird cause it scans other shows on the share ok? This is the one it is stuck on now.

The command was this:

/opt/emby-server/bin/ffprobe -i smb://192.168.0.102/TV-zfsforn/Sharp_Objects/S01/Sharp.Objects.S01E06.Cherry.avi -threads 0 -v info -print_format json -show_streams -show_chapters -show_format then lots of build options then this error:

smb://192.168.0.102/TV-zfsforn/Sharp_Objects/S01/Sharp.Objects.S01E06.Cherry.avi: Protocol not found

Like I say I am totally perplexed because it manages to scan other videos on that share and there are a few.

The odd thing is that rather than bailing it is just gets stuck.

emby 763 38.3 0.0 263828 1700 ? R Sep22 4485:22 /opt/emby-server/bin/ffprobe -i smb://192.168.0.102/TV-zfsforn/Sharp_Objects/S01/Sharp.Objects.S01E06.Cherry.avi -threads 0 -v info -print_format json -show_streams -show_chapters -show_format

ps -o etime= -p "763" 
 8-02:43:09

And yeah.. that is 8 Days 2 hours 43 minutes and 9 seconds.

I honestly don't know where to start... sighs

LukePulverenti commented 6 years ago

Can you try this, instead of adding smb paths to emby, first mount them to your OS as a local folder. Then add the local folder path to Emby. Please let me know if this makes a difference. Thanks.

develroo commented 6 years ago

Seems to scan ok when mounted.

Well mounting it locally always worked but I was hoping not to have to do that all the time otherwise what is the point in hosting it on a remote server ?

Hey ho.

LukePulverenti commented 6 years ago

How does it change anything? it's just two different ways of importing an smb share into Emby.

develroo commented 6 years ago

How does it change anything? it's just two different ways of importing an smb share into Emby.

Well for one thing you have to extend permissions locally to the server to mount the share for another if I am to mount a share locally why would I need/want SMB browsing in the first place. I should just use NFS and be done with it.

Don't get me wrong I am not criticising as such but being a Linux geek networking and data transparency is very much my thing. I should be able to move a back end server from one piece of physical hardware to another and not have any services be interrupted which becomes increasingly important when you start virtualising services.

Either way, I think it is needed to mark that scanning a SMB share do not work reliably and either remove that option from the configuration or find out a way to improve it.

Thanks.

LukePulverenti commented 5 years ago

This is resolved for the next release (3.6), although I would suggest choosing NFS instead. Thanks.