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

Every time I upload a edited copy of telly.config.toml the file gets erased and rewritten #288

Open
robertjamesm opened this issue May 28, 2022 · 4 comments

Comments

@robertjamesm
Copy link

I'm running telly from a Synology docker container

@chazlarson
Copy link
Contributor

Telly doesn't write to its config file, so not sure what might be happening here. If you make that mount read only in the docker setup, does the behavior change?

@robertjamesm
Copy link
Author

Negative, it keeps removing the changes I made and goes into this loop.

PANI[2022-05-29T04:56:09Z] fatal error while reading config file: error="While parsing config: (14, 3): never reached"
panic: (*logrus.Entry) (0xc7c2c0,0xc0002ca0e0)

goroutine 1 [running]:
github.com/sirupsen/logrus.Entry.log(0x139b4a0, 0xc000204870, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/entry.go:239 +0x2ce
github.com/sirupsen/logrus.(*Entry).Log(0xc0002ca070, 0x0, 0xc00011dc88, 0x1, 0x1)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/entry.go:268 +0xed
github.com/sirupsen/logrus.(*Entry).Logln(0xc0002ca070, 0x0, 0xc00011dde8, 0x1, 0x1)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/entry.go:359 +0xd3
github.com/sirupsen/logrus.(*Entry).Panicln(...)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/entry.go:397
main.main()
/app/main.go:139 +0x1235
PANI[2022-05-29T04:56:10Z] fatal error while reading config file: error="While parsing config: (14, 3): never reached"
panic: (*logrus.Entry) (0xc7c2c0,0xc00023afc0)

@robertjamesm
Copy link
Author

I'm editing the path /etc/telly/ and it keeps defaulting back to this.

[Discovery]
Device-Auth = "telly123"
Device-ID = 12345678
Device-UUID = ""
Device-Firmware-Name = "hdhomeruntc_atsc"
Device-Firmware-Version = "20150826"
Device-Friendly-Name = "telly"
Device-Manufacturer = "Silicondust"
Device-Model-Number = "HDTC-2US"
SSDP = true

[IPTV]
Streams =
Starting-Channel = 10000
XMLTV-Channels = true

[Log]
Level = "info"
Requests = true

[Web]
Base-Address = ""
Listen-Address = "0.0.0.0:6077"

[[Source]]
Provider = "Custom"
M3U = ""
EPG = ""
Filter = ""
FilterKey = "group-title"
FilterRaw = false
Sort = "group-title"

Documentation at: https://github.com/tellytv/telly/wiki/Running-Telly%3A-Config-File

@chazlarson
Copy link
Contributor

chazlarson commented May 31, 2022

It's creating a file with that documentation link in it?

I have never seen this behavior and cannot reproduce it in a non-synology docker environment. I'm going to use this test script:

#!/bin/bash

docker run -d \
  --name='telly-robertjamesm' \
  --net='bridge' \
  -e TZ="America/Chicago" \
  -p '6077:6077/tcp' \
  -v ${PWD}:/etc/telly \
  --restart unless-stopped \
  tellytv/telly:dev-ffmpeg

docker logs -f telly-robertjamesm

If I have no valid config file in that dir:

 $./docker-robertjamesm.sh
537bde3bacd8c11824153a1ad6ef14d93c4cf3c900e29be2cefe9892188740d5
time="2022-05-31T04:44:14Z" level=info msg="telly is preparing to go live (version=1.1.0.6, branch=dev, revision=741108cd2100cf9f4d3a13f771d1ebe5132baae6)"
time="2022-05-31T04:44:14Z" level=warning msg="There is no source element in the configuration, the config file is likely missing."
time="2022-05-31T04:44:14Z" level=info msg="telly is live and on the air!"
time="2022-05-31T04:44:14Z" level=info msg="Broadcasting from http://localhost:6077/"
time="2022-05-31T04:44:14Z" level=info msg="EPG URL: http://localhost:6077/epg.xml"

That error is as expected and no default config file is created.

If I give it a telly.config.toml with a bad M3U URL:

 $ ./docker-robertjamesm.sh
e2697da91862f156d6a383ea5260354d90f7eb309a5da5926df2d1387db967cc
time="2022-05-31T04:45:37Z" level=info msg="telly is preparing to go live (version=1.1.0.6, branch=dev, revision=741108cd2100cf9f4d3a13f771d1ebe5132baae6)"
time="2022-05-31T04:45:37Z" level=info msg="Loading M3U from http://mag.REDACTED.com/get.php?username=REDACTED&password=REDACTED&type=m3u_plus&output=mpegts"
time="2022-05-31T04:45:38Z" level=error msg="unable to parse m3u file" error="malformed M3U provided"
time="2022-05-31T04:45:38Z" level=error msg="error when preparing provider" error="malformed M3U provided"
time="2022-05-31T04:45:38Z" level=error msg="error when processing provider" error="malformed M3U provided"
time="2022-05-31T04:45:38Z" level=info msg="telly is live and on the air!"
time="2022-05-31T04:45:38Z" level=info msg="Broadcasting from http://0.0.0.0:6077/"
time="2022-05-31T04:45:38Z" level=info msg="EPG URL: http://0.0.0.0:6077/epg.xml"

Another expected error, and the config file is left untouched.

Then with a valid M3U URL:

 $ ./docker-robertjamesm.sh
63d4136db18cf4bd69bf9f133441f805138f6ec1283d66594ee0ea51b56c1329
time="2022-05-31T04:52:59Z" level=info msg="telly is preparing to go live (version=1.1.0.6, branch=dev, revision=741108cd2100cf9f4d3a13f771d1ebe5132baae6)"
time="2022-05-31T04:52:59Z" level=info msg="Loading M3U from URL_REDACTED"
time="2022-05-31T04:53:00Z" level=info msg="Loaded 98 channels into the lineup from robertjamesm"
time="2022-05-31T04:53:00Z" level=info msg="telly is live and on the air!"
time="2022-05-31T04:53:00Z" level=info msg="Broadcasting from http://0.0.0.0:6077/"
time="2022-05-31T04:53:00Z" level=info msg="EPG URL: http://0.0.0.0:6077/epg.xml"

Runs fine as expected, again config is untouched.

Finally, with a random file in place of the M3U:

 $ cp docker.sh telly.config.toml

 $ ./docker-robertjamesm.sh
331a5f7d8ef15c3297fc1ba79909887f15ed427272333a8e0bccda1fbfb4ad2c
time="2022-05-31T04:54:42Z" level=panic msg="fatal error while reading config file:" error="While parsing config: (3, 8): was expecting token =, but got \"run\" instead"
panic: (*logrus.Entry) (0xc7d5e0,0xc0002e60e0)

ERROR_TRACE_REDACTED

I get the expected error since the config file cannot be parsed as YAML.

After that error, the config file is still the random file i copied on top of it

 $ cat telly.config.toml
#!/bin/bash

docker run -d \
  --name='telly-rockydares' \
  --net='bridge' \
  -e TZ="America/Chicago" \
  -p '6077:6077/tcp' \
  -v ${PWD}/telly.config.toml:/etc/telly/telly.config.toml \
  -v ${PWD}:/etc/telly \
  --restart unless-stopped \
  tellytv/telly:dev-ffmpeg

docker logs -f telly-rockydares

I can't get it to overwrite the config file under any circumstances.

EDIT: I went and looked to verify just now, and telly only contains code to READ the config file, not write it. This really seems like it's something in the synology config.

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