Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Container - Internal Server Error #60

Closed
n0012 opened this issue Sep 18, 2016 · 10 comments
Closed

Docker Container - Internal Server Error #60

n0012 opened this issue Sep 18, 2016 · 10 comments

Comments

@n0012
Copy link

n0012 commented Sep 18, 2016

I receive an Internal Server Error after firing up wallop via docker. See below, and let me know if I provide any additional details.

config.toml
ffmpeg_path = "/ffmpeg/bin/ffmpeg"
acodec = "libfdk_aac"
transcoding_path = "/tmp"
hdhomerun_host = "10.0.0.106"
port = "8888"

docker startup command
docker run --rm --name wallop -v $(pwd)/config.toml:/wallop/config/config.toml -p 8888:8888 ipstatic/wallop:latest

hdhr firmware
20160902beta3

hdhr channel lineup
http://10.0.0.106/lineup.json
returns json

Docker Terminal Output after accessing http://localhost:8888 and receiving Internal Server Error
== Sinatra (v1.4.7) has taken the stage on 8888 for production with backup from Thin
172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET / HTTP/1.1" 302 - 0.0026
2016-09-18 08:56:33 - NoMethodError - undefined method []' for nil:NilClass: /wallop/lib/wallop.rb:128:inblock in lineup'
/wallop/lib/wallop.rb:126:in each' /wallop/lib/wallop.rb:126:inlineup'
/wallop/lib/wallop.rb:143:in favorite_lineup' app/app.rb:45:inblock in class:App'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:inblock in compile!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in block (3 levels) in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:994:inroute_eval'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in block (2 levels) in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015:inblock in process_route'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in catch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:inprocess_route'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:973:in block in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:ineach'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085:inblock in dispatch!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in block in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:incatch'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082:indispatch!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in block in call!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:inblock in invoke'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in catch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:ininvoke'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in call!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:895:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/logger.rb:15:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:212:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/head.rb:13:in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:182:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013:in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:inblock in call'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1787:in synchronize' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:86:in block in pre_process' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:incatch'
/wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:in pre_process' /wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:in block in spawn_threadpool' 172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET /channels?type=favorites HTTP/1.1" 500 30 0.0196 172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET / HTTP/1.1" 302 - 0.0015 2016-09-18 08:56:33 - NoMethodError - undefined method[]' for nil:NilClass:
/wallop/lib/wallop.rb:128:in block in lineup' /wallop/lib/wallop.rb:126:ineach'
/wallop/lib/wallop.rb:126:in lineup' /wallop/lib/wallop.rb:143:infavorite_lineup'
app/app.rb:45:in block in <class:App>' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:in block in compile!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:inblock (3 levels) in route!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:994:in route_eval' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:inblock (2 levels) in route!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015:in block in process_route' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:incatch'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in process_route' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:973:inblock in route!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in each' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:inroute!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085:in block in dispatch!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:inblock in invoke'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in catch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:ininvoke'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082:in dispatch!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:inblock in call!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in block in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:incatch'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:incall!'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:895:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/logger.rb:15:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:212:in call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/head.rb:13:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:182:in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013:incall'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in block in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1787:insynchronize'
/wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in call' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:86:inblock in pre_process'
/wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:in catch' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:inpre_process'
/wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:in call' /wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:inblock in spawn_threadpool'
172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET /channels?type=favorites HTTP/1.1" 500 30 0.0016

@n0012
Copy link
Author

n0012 commented Sep 18, 2016

From the terminal within the docker container, I can ping the hdhomerun_host.

@n0012
Copy link
Author

n0012 commented Sep 21, 2016

Any thoughts? Maddox, you think this issue resides on the Docker side or wallop?

@n0012
Copy link
Author

n0012 commented Sep 21, 2016

Side note - I've tried using HDHRViewerV2, without a lot of luck on the transcoding side. Would be great if wallop could integrate with PLEX as a Channel like HDHRViewer does, and actually render well over mobile connections. http://hdhrviewer.zynine.net/hdhrviewerv2-initial-setup/

@maddox
Copy link
Owner

maddox commented Sep 21, 2016

This is where it's erring: https://github.com/maddox/wallop/blob/master/lib/wallop.rb#L128

Do you have a section in your config defining channel logos? It should look like this:

[channel_logos]
506 = "cbs.png"
508 = "abc.png"
511 = "fox.png"
512 = "nbc.png"

@maddox
Copy link
Owner

maddox commented Sep 21, 2016

Side note - I've tried using HDHRViewerV2, without a lot of luck on the transcoding side. Would be great if wallop could integrate with PLEX as a Channel like HDHRViewer does, and actually render well over mobile connections.

Why not just use that plugin instead of Wallop?

@n0012
Copy link
Author

n0012 commented Sep 21, 2016

Why not just use that plugin instead of Wallop?

I haven't found it to work that well. Lots of buffering etc. Hoping wallop will work better.

@maddox
Copy link
Owner

maddox commented Sep 21, 2016

Well, the whole point of using Plex channels is to pipe it through their transcoder. So I suspect it'd have the same results. You wouldn't actually use Wallop, you'd just use Plex's internal transcoder.

@n0012
Copy link
Author

n0012 commented Sep 21, 2016

Well, the whole point of using Plex channels is to pipe it through their transcoder. So I suspect it'd have the same results. You wouldn't actually use Wallop, you'd just use Plex's internal transcoder.

Gotcha. I'll let you know my feedback after I can compare experiences between the Plex Channel and Wallop.

@n0012
Copy link
Author

n0012 commented Sep 21, 2016

Got it resolved. My working config for a docker container running on OSX is as follows. So far working much better than HDHRViewerV2 - the ffmpeg transcoder must handle real time mpg2 to mpg4 better than Plex's built in transcoder....

I also like the options you offer up in the settings menu to throttle the stream quality when needed.

hdhomerun_host = "10.0.0.50"
hdhr_transcode = false
ffmpeg_path = "/ffmpeg/bin/ffmpeg"
transcoding_path = "/tmp"
port = "8888"
hd_start = 1

[ffmpeg]
threads = 4
acodec = "libfdk_aac"
framerate = "29.97"
h264_preset = "superfast"
hls_time = 2
hls_wrap = 40
options = "-loglevel warning -async 1 -tune zerolatency -flags -global_header -fflags +genpts -map 0:0 -map 0:1"

[channel_logos]
506 = "cbs.png"
508 = "abc.png"
511 = "fox.png"
512 = "nbc.png"

@maddox
Copy link
Owner

maddox commented Sep 21, 2016

Great!

@maddox maddox closed this as completed Sep 21, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants