Roon Extension: CD Ripper v0.6.1 (2022-12-24)

Can you provide me the output of the following command?

docker logs roon-extension-cd-ripper

Depending on the amount of output, it might be wise to upload it somewhere and send me a link.

Please also provide the Docker version that you use:

docker --version

I had difficulties with drive detection with an older version of Docker (17.06), you might run into the same.

Docker on QNAP is Docker version 17.09.1-ce, build 0a5102e

docker log
-> REQUEST 0 com.roonlabs.registry:1/info
-> REQUEST 0 com.roonlabs.registry:1/info
<- COMPLETE 0 Success {“core_id”:“25e612ca-a515-4638-90e7-26b715971e80”,“display_name”:“Roon Music”,“display_version”:“1.6 (build 401) stable”}
-> REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.theappgineer.cd-ripper”,“display_name”:“CD Ripper”,“display_version”:“0.1.0”,“publisher”:“The Appgineer",“email”:"theappgineer@gmail.com”,“required_services”:[],“optional_services”:[],“provided_services”:[“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.pairing:1”,“com.roonlabs.ping:1”],“website”:“Roon Extension: CD Ripper v0.1.0”}
<- COMPLETE 0 Success {“core_id”:“f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c”,“display_name”:“MASTERCHIEF”,“display_version”:“1.6 (build 401) stable”}
-> REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.theappgineer.cd-ripper”,“display_name”:“CD Ripper”,“display_version”:“0.1.0”,“publisher”:“The Appgineer",“email”:"theappgineer@gmail.com”,“required_services”:[],“optional_services”:[],“provided_services”:[“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.pairing:1”,“com.roonlabs.ping:1”],“website”:“Roon Extension: CD Ripper v0.1.0”}
<- CONTINUE 1 Registered {“core_id”:“25e612ca-a515-4638-90e7-26b715971e80”,“display_name”:“Roon Music”,“display_version”:“1.6 (build 401) stable”,“token”:“6dd8fd7e-3771-48c0-9920-2fa47dcdddd2”,“provided_services”:[],“http_port”:9100}
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {“subscription_key”:“160”}
-> CONTINUE 1 Subscribed {“message”:“Drive scanning in progress…”,“is_error”:false}
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {“subscription_key”:“161”}
-> CONTINUE 2 Subscribed {“paired_core_id”:“25e612ca-a515-4638-90e7-26b715971e80”}
<- CONTINUE 1 Registered {“core_id”:“f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c”,“display_name”:“MASTERCHIEF”,“display_version”:“1.6 (build 401) stable”,“token”:“eb20cddf-3a3a-40c1-a35d-5815f06478e1”,“provided_services”:[],“http_port”:9100}
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {“subscription_key”:“41”}
-> CONTINUE 1 Subscribed {“message”:“Drive scanning in progress…”,“is_error”:false}
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {“subscription_key”:“42”}
-> CONTINUE 2 Subscribed {“paired_core_id”:“25e612ca-a515-4638-90e7-26b715971e80”}
stderr: “CRITICAL:whipper.command.drive:no drives found. Create /dev/cdrom if you have a CD drive, or install pycdio for better detection”
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true}
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true}
whipper exited with code: 0

Looks similar.

Please try the following.

  • Update the Extension Repository to v0.3.1
  • Uninstall the CD Ripper
  • Connect and power the external drive, it should be available during install
  • Install the CD Ripper and provide the Optical Drive Path twice (new Repeat field) (/dev/sr0 in your case)

I guess this is one of the rough edges I promissed you :wink:

Still no joy. :frowning:

Its odd as dmeg is gving this out,
[179556.899453] blk_update_request: I/O error, dev sr1, sector 664192
[179556.908499] sr 17:0:0:0: [sr1] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[179556.916447] sr 17:0:0:0: [sr1] Sense Key : Illegal Request [current]
[179556.922995] sr 17:0:0:0: [sr1] Add. Sense: Illegal mode for this track
[179556.929623] sr 17:0:0:0: [sr1] CDB: Read(10) 28 00 00 02 88 a0 00 00 02 00 00 00
[179556.937121] blk_update_request: I/O error, dev sr1, sector 664192
[179556.943308] Buffer I/O error on dev sr1, logical block 83024, async page read
[179556.951928] xhci_hcd 0000:00:14.0: WARN Event TRB for slot 9 ep 2 with no TDs queued?
[179556.964951] Buffer I/O error on dev sr1, logical block 0, async page read
[179556.976210] Buffer I/O error on dev sr1, logical block 66, async page read
[179556.985438] Buffer I/O error on dev sr1, logical block 66, async page read

tried with a second drive I have same result. Noticed that the QNAP cannot mount a cd when its inserted to but putting in a DVD it does mount it. I know the drive works as when I make it available to my VM it works in the VM just fine. I wonder if somethings bust in QTS?

There are a lot of questions on the QNAP forum about how to mount a drive, but I haven’t found the answer. So maybe it is not supported :frowning:

Have you already tried to add the option that @BlackJack suggested here?

@Jan_Koudijs Yes I have no issues running it and used that method to get the container working, it just doesn’t like my cdrom, so this must be a QNAP thing as its reporting errors and wont mount with a cd in it. Not sure why though as it passed it through to VM’s without issue.

Now trying to get it working in a VM I have of vortexbox. I have installed docker and got that running successfully installed the Extension Manager and its running but it just wont install the CD ripper extension just sits there saying its installing it but nothing happens. Any ideas, I am rapidly reaching the limit of my comfort zone

Do you run the Extension Manager in a container again?

If so, the output of docker logs roon-extension-manager might give a hint.

Seems to be a tough job on a QNAP. Any chance to try a Pi with DietPi?

@Jan_Koudijs, I tried the option of @BlackJack in the Synology’s GUI for Docker. This did not worked. I got an error that the container cannot be found.

Then I logged in on my Synology with Telnet. There I tried this command:
“docker run -d --network bridge --restart unless-stopped --name test --hostname Docker -v roon-extensions:/root/.RoonExtensions/lib -v /var/run/docker.sock:/var/run/do
cker.sock -e “TZ=Europe/Amsterdam” theappgineer/roon-extension-manager:latest”.

This command created a new container “test” on the Synology which I can see in Synology’s GUI for Docker. So far so good.

Then in Roon I tried to install the Alarm Clock extension. The extension is installed and in Synology’s GUI for Docker I see a new container created called “roon-extension-alarm-clock”. Unfortunately the Alarm Clock extension will not run. In the Extension Settings screen from Roon I see something strange when I select the Alarm Clock extension. I says “STOPPED: tag amd64”. This seems strange because my Synology has a Intel processor.

When I install CD-Ripper in the Extension Manager in Roon I get the same problem. CD-ripper wil not start and I get “STOPPED: tag amd64”.

(Beware of: When I create the roon-extension-manager container with Synology’s GUI I do not get a seperate container for the Alarm Clock extension (when installing that) ánd the Alarm Clock is working without problems).

I hope you can help me out.

I could but I dont really want to run another device. Yes Extension manager is in a container in a VM on the QNAP as I cant get the QNAP to share the CDROM with container station but it will with a VM,

log can be got from here as its large https://1drv.ms/t/s!AgHQUEVFVR_nx7pCI36maI_POAhhrQ.

Managed to get the extension to install by manually pulling it and then running the instal command, But it still says no drive detected even though I know this os can see it and use it. I’m gving up now I am out of ideas.

log from the ripper.
-> REQUEST 0 com.roonlabs.registry:1/info ,
<- COMPLETE 0 Success {“core_id”:“25e612ca-a515-4638-90e7-26b715971e80”,“display_name”:“Roon Music”,“display_version”:“1.6 (build 401) stable”},
-> REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.theappgineer.cd-ripper”,“display_name”:“CD Ripper”,“display_version”:“0.1.0”,“publisher”:“The Appgineer",“email”:"theappgineer@gmail.com”,“required_services”:[],“optional_services”:[],“provided_services”:[“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.pairing:1”,“com.roonlabs.ping:1”],“website”:“Roon Extension: CD Ripper v0.1.0”},
-> REQUEST 0 com.roonlabs.registry:1/info ,
<- CONTINUE 1 Registered {“core_id”:“25e612ca-a515-4638-90e7-26b715971e80”,“display_name”:“Roon Music”,“display_version”:“1.6 (build 401) stable”,“token”:“cb5b67ec-ffc3-402f-884a-5ec4ca64cf93”,“provided_services”:[],“http_port”:9100},
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {“subscription_key”:“265”},
-> CONTINUE 1 Subscribed {“message”:“Drive scanning in progress…”,“is_error”:false},
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {“subscription_key”:“266”},
-> CONTINUE 2 Subscribed {“paired_core_id”:“25e612ca-a515-4638-90e7-26b715971e80”},
<- COMPLETE 0 Success {“core_id”:“f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c”,“display_name”:“MASTERCHIEF”,“display_version”:“1.6 (build 401) stable”},
-> REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.theappgineer.cd-ripper”,“display_name”:“CD Ripper”,“display_version”:“0.1.0”,“publisher”:“The Appgineer",“email”:"theappgineer@gmail.com”,“required_services”:[],“optional_services”:[],“provided_services”:[“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.pairing:1”,“com.roonlabs.ping:1”],“website”:“Roon Extension: CD Ripper v0.1.0”},
<- CONTINUE 1 Registered {“core_id”:“f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c”,“display_name”:“MASTERCHIEF”,“display_version”:“1.6 (build 401) stable”,“token”:“71a22460-da34-41ed-b376-53d351728527”,“provided_services”:[],“http_port”:9100},
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {“subscription_key”:“19”},
-> CONTINUE 1 Subscribed {“message”:“Drive scanning in progress…”,“is_error”:false},
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {“subscription_key”:“20”},
-> CONTINUE 2 Subscribed {“paired_core_id”:“25e612ca-a515-4638-90e7-26b715971e80”},
stderr: “CRITICAL:whipper.command.drive:no drives found. Create /dev/cdrom if you have a CD drive, or install pycdio for better detection”,
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
whipper exited with code: 0,
<- REQUEST 70 com.roonlabs.settings:1/subscribe_settings {“subscription_key”:“267”},
-> CONTINUE 70 Subscribed {“settings”:{“values”:{},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 144 com.roonlabs.settings:1/save_settings {“settings”:{“values”:{“action”:1}},“is_dry_run”:true},
-> COMPLETE 144 Success {“settings”:{“values”:{“action”:1},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 147 com.roonlabs.settings:1/save_settings {“settings”:{“values”:{“action”:1}},“is_dry_run”:false},
-> COMPLETE 147 Success {“settings”:{“values”:{“action”:1},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
-> CONTINUE 1 Changed {“message”:“Drive scanning in progress…”,“is_error”:false},
-> CONTINUE 1 Changed {“message”:“Drive scanning in progress…”,“is_error”:false},
-> CONTINUE 70 Changed {“settings”:{“values”:{},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 148 com.roonlabs.settings:1/unsubscribe_settings {“subscription_key”:“267”},
-> COMPLETE 148 Unsubscribed ,
stderr: “CRITICAL:whipper.command.drive:no drives found. Create /dev/cdrom if you have a CD drive, or install pycdio for better detection”,
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
whipper exited with code: 0,
<- REQUEST 507 com.roonlabs.settings:1/subscribe_settings {“subscription_key”:“268”},
-> CONTINUE 507 Subscribed {“settings”:{“values”:{},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 509 com.roonlabs.settings:1/save_settings {“settings”:{“values”:{“action”:1}},“is_dry_run”:true},
-> COMPLETE 509 Success {“settings”:{“values”:{“action”:1},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 511 com.roonlabs.settings:1/save_settings {“settings”:{“values”:{“action”:1}},“is_dry_run”:false},
-> COMPLETE 511 Success {“settings”:{“values”:{“action”:1},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
-> CONTINUE 1 Changed {“message”:“Drive scanning in progress…”,“is_error”:false},
-> CONTINUE 1 Changed {“message”:“Drive scanning in progress…”,“is_error”:false},
-> CONTINUE 507 Changed {“settings”:{“values”:{},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 512 com.roonlabs.settings:1/unsubscribe_settings {“subscription_key”:“268”},
-> COMPLETE 512 Unsubscribed ,
stderr: “CRITICAL:whipper.command.drive:no drives found. Create /dev/cdrom if you have a CD drive, or install pycdio for better detection”,
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
whipper exited with code: 0,
<- REQUEST 516 com.roonlabs.settings:1/subscribe_settings {“subscription_key”:“269”},
-> CONTINUE 516 Subscribed {“settings”:{“values”:{},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 563 com.roonlabs.settings:1/save_settings {“settings”:{“values”:{“action”:1}},“is_dry_run”:true},
-> COMPLETE 563 Success {“settings”:{“values”:{“action”:1},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 564 com.roonlabs.settings:1/save_settings {“settings”:{“values”:{“action”:1}},“is_dry_run”:false},
-> COMPLETE 564 Success {“settings”:{“values”:{“action”:1},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
-> CONTINUE 1 Changed {“message”:“Drive scanning in progress…”,“is_error”:false},
-> CONTINUE 1 Changed {“message”:“Drive scanning in progress…”,“is_error”:false},
-> CONTINUE 516 Changed {“settings”:{“values”:{},“layout”:[{“type”:“group”,“title”:“Global Settings”,“items”:[{“type”:“string”,“title”:“Share”,“setting”:“share”}]},{“type”:“dropdown”,“title”:“Action”,“values”:[{“title”:"(select action)"},{“title”:“Scan Drive”,“value”:1}],“setting”:“action”}],“has_error”:false}},
<- REQUEST 565 com.roonlabs.settings:1/unsubscribe_settings {“subscription_key”:“269”},
-> COMPLETE 565 Unsubscribed ,
stderr: “CRITICAL:whipper.command.drive:no drives found. Create /dev/cdrom if you have a CD drive, or install pycdio for better detection”,
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
whipper exited with code: 0,
-> REQUEST 0 com.roonlabs.registry:1/info ,
<- COMPLETE 0 Success {“core_id”:“f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c”,“display_name”:“MASTERCHIEF”,“display_version”:“1.6 (build 401) stable”},
-> REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.theappgineer.cd-ripper”,“display_name”:“CD Ripper”,“display_version”:“0.1.0”,“publisher”:“The Appgineer",“email”:"theappgineer@gmail.com”,“required_services”:[],“optional_services”:[],“provided_services”:[“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.pairing:1”,“com.roonlabs.ping:1”],“website”:“Roon Extension: CD Ripper v0.1.0”},
-> REQUEST 0 com.roonlabs.registry:1/info ,
<- COMPLETE 0 Success {“core_id”:“25e612ca-a515-4638-90e7-26b715971e80”,“display_name”:“Roon Music”,“display_version”:“1.6 (build 401) stable”},
-> REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.theappgineer.cd-ripper”,“display_name”:“CD Ripper”,“display_version”:“0.1.0”,“publisher”:“The Appgineer",“email”:"theappgineer@gmail.com”,“required_services”:[],“optional_services”:[],“provided_services”:[“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.pairing:1”,“com.roonlabs.ping:1”],“website”:“Roon Extension: CD Ripper v0.1.0”},
<- CONTINUE 1 Registered {“core_id”:“25e612ca-a515-4638-90e7-26b715971e80”,“display_name”:“Roon Music”,“display_version”:“1.6 (build 401) stable”,“token”:“eb3d3dec-6208-4a72-8700-b6c3655e5d7b”,“provided_services”:[],“http_port”:9100},
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {“subscription_key”:“270”},
-> CONTINUE 1 Subscribed {“message”:“Drive scanning in progress…”,“is_error”:false},
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {“subscription_key”:“271”},
-> CONTINUE 2 Subscribed {“paired_core_id”:“25e612ca-a515-4638-90e7-26b715971e80”},
<- CONTINUE 1 Registered {“core_id”:“f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c”,“display_name”:“MASTERCHIEF”,“display_version”:“1.6 (build 401) stable”,“token”:“ff2a2b54-b512-454a-9ebd-dbc4a3f827fb”,“provided_services”:[],“http_port”:9100},
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {“subscription_key”:“21”},
-> CONTINUE 1 Subscribed {“message”:“Drive scanning in progress…”,“is_error”:false},
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {“subscription_key”:“22”},
-> CONTINUE 2 Subscribed {“paired_core_id”:“25e612ca-a515-4638-90e7-26b715971e80”},
stderr: “CRITICAL:whipper.command.drive:no drives found. Create /dev/cdrom if you have a CD drive, or install pycdio for better detection”,
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
-> CONTINUE 1 Changed {“message”:“No drive found!”,“is_error”:true},
whipper exited with code: 0,

“amd64” refers to the architecture, not the manufacturer. 64-bit x86.

@Bill_Janssen, thanks for your reply. Apparently I misunderstoond the “tag amd64” message.

Also @Jan_Koudijs, when I start in Synology’s Docker GUI the roon-extension-alarm-clock container I get the message: “Docker API has failed. Please visit Docker Log for more information.”. The Log from Docker shows me: “Error” and " Start container roon-extension-alarm-clock failed: {“message”:“Bind mount failed: ‘/root/.RoonExtensions/lib/binds/roon-extension-alarm-clock/usr/src/app/config.json’ does not exists”}".

When I try to start in Synology’s Docker GUI the roon-extension-cd-ripper container I get the message: “Container does not exist”. The is no message in the Docker Log.

Thanks for providing the error message, that’s helpful.

Let’s first focus on getting the Alarm Clock running in a container, as this has less external dependencies than the CD Ripper.

I’m not sure what status the extensions are in due to the different ways of creating the Extension Manager container. My suggestion is to:

  • Remove the Extension Manager, Alarm Clock and CD Ripper containers
  • Create a new Extension Manager container with the command that you listed before, with the only change that you use --network host instead of bridge
  • Open the Extension Manager and install the Alarm Clock
  • If it does not start then go back to the console and enter the following command: docker logs roon-extension-manager
  • Pretty at the end of the output you should see a line with Inf: Installing: roon-extension-alarm-clock..., copy all the text after this line and paste it here

The log data might help in defining the next steps.

1 Like

@Jan_Koudijs

Thanks for your reply! It is indeed wisely to focus first on the Alarm Clock Extension, so that we know that the extensions are working on my system.

I did what you suggested. First in Roon I deleted the Alarm Clock and the CD-Ripper extension. Then I delete Roon-extension-manager in Synology’s Docker GUI.

Then I created a new container in Telnet on the Synology with the command I used earlier. As you suggested I used “–network host” in stead of “–network bridge”. Now the Alarm Clock extension starts as expected. :slight_smile: Your solution did the trick!

Although there is one strange thing. In the Log for the Alarm Clock container I see every second the following message: " <- CONTINUE 2 Changed {“zones_seek_changed”:[{“zone_id”:“16016771e1420ec7c3dca4b55ac9c0cbe4da”,“queue_time_remaining”:3549,“seek_position”:78}]}". I don’t know what this means and asks myself if it has something to with with the fact that I did not filled in the timezone at installing the Alarm Clock? (And, why should I? After all, I declared the timezone on the moment of creating the container for the roon-extension-manager with the environment variable TZ.)

Äs you asked, I looked in the Log for the Roon-Extension-Manager for the output “Inf: Installing: roon-extension-alarm-clock …”. I found:
2019-04-17T20:44:55.232Z - Inf: Started: roon-extension-alarm-clock stdout
20:44:55 -> CONTINUE 1 Changed {“message”:“Started: roon-extension-alarm-clock”,“is_error”:false} stdout
20:44:55 <- REQUEST 217 com.roonlabs.settings:1/unsubscribe_settings {“subscription_key”:“12”} stdout
20:44:55 -> COMPLETE 217 Unsubscribed stdout
20:45:19 -> CONTINUE 1 Changed {“message”:“Started: roon-extension-alarm-clock”,“is_error”:false} stdout
20:46:19 -> CONTINUE 1 Changed {“message”:“Started: roon-extension-alarm-clock”,“is_error”:false} stdout
20:47:14 -> REQUEST 0 com.roonlabs.registry:1/info stdout
20:47:14 <- COMPLETE 0 Success {“core_id”:“xxxxxxxx-xxxx-xxxx- …”,“display_name”:“xxxx…”,“display_version”:“1.6 (build 401) stable”} stdout
20:47:14 -> REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.theappgineer.extension-manager.Docker”,“display_name”:“Roon Extension Manager @Docker”,“display_version”:“0.10.0”,“publisher”:“The Appgineer",“email”:"theappgineer@gmail.com”,“required_services”:[],“optional_services”:[],“provided_services”:[“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.pairing:1”,“com.roonlabs.ping:1”],“website”:“https://community.roonlabs.com/t/roon-extension-manager/26632",“token”:"xxxxxxxx-xxxx-xxxx- …”} stdout
20:47:14 <- CONTINUE 1 Registered {“core_id”:“xxxxxxxx-xxxx-xxxx-xxxx …”,“display_name”:“xxxxx …”,“display_version”:“1.6 (build 401) stable”,“token”:“xxxxxxxx-xxxx-…”,“provided_services”:[],“http_port”:9100} stdout
20:47:14 <- REQUEST 1 com.roonlabs.status:1/subscribe_status {“subscription_key”:“1”} stdout
20:47:14 -> CONTINUE 1 Subscribed {“message”:“Started: roon-extension-alarm-clock”,“is_error”:false} stdout
20:47:14 <- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {“subscription_key”:“2”} stdout
20:47:14 -> CONTINUE 2 Subscribed {“paired_core_id”:“xxxxxxxx-xxxx-…”} stdout
20:47:19 -> CONTINUE 1 Changed {“message”:“Started: roon-extension-alarm-clock”,“is_error”:false} stdout
20:47:19 -> CONTINUE 1 Changed {“message”:“Started: roon-extension-alarm-clock”,“is_error”:false} stdout

Furthermore, I see in the Log for Roon-Extension-Manager every minute the following message repeated: “-> CONTINUE 1 Changed {“message”:“Started: roon-extension-alarm-clock”,“is_error”:false}”. Is this a necessary message?

Finally it strikes me that the timepoints in the logs are two hours ahead of the real time: I think the logs gives the UTC times.

In Roon I uninstalled now the Alarm-Clock extension and tried to install it again. Installing again gives me the following error:
22:14:41 -> CONTINUE 1 Changed {“message”:“Installation failed: roon-extension-alarm-clock”,“is_error”:true} stdout
22:14:41 { Error: (HTTP code 500) server error - Duplicate mount point ‘/usr/src/app/config.json’ stderr
22:14:41 at /root/.RoonExtensions/lib/node_modules/roon-extension-manager/node_modules/docker-modem/lib/modem.js:257:17 stderr
22:14:41 at getCause (/root/.RoonExtensions/lib/node_modules/roon-extension-manager/node_modules/docker-modem/lib/modem.js:287:7) stderr
22:14:41 at Modem.buildPayload (/root/.RoonExtensions/lib/node_modules/roon-extension-manager/node_modules/docker-modem/lib/modem.js:256:5) stderr
22:14:41 at IncomingMessage.<anonymous> (/root/.RoonExtensions/lib/node_modules/roon-extension-manager/node_modules/docker-modem/lib/modem.js:232:14) stderr
22:14:41 at emitNone (events.js:111:20) stderr
22:14:41 at IncomingMessage.emit (events.js:208:7) stderr
22:14:41 at endReadableNT (_stream_readable.js:1064:12) stderr
22:14:41 at _combinedTickCallback (internal/process/next_tick.js:139:11) stderr
22:14:41 at process._tickCallback (internal/process/next_tick.js:181:9) stderr
22:14:41 reason: ‘server error’, stderr
22:14:41 statusCode: 500, stderr
22:14:41 json: stderr
22:14:41 { message: ‘Duplicate mount point ‘/usr/src/app/config.json’’ } } stderr
22:14:41 -> CONTINUE 1 Changed {“message”:“Installation failed: roon-extension-alarm-clock”,“is_error”:true}

My conclusion is that Roon-extension-manager does not manage uninstalling the Alarm Clock completely and perfectly.

So next I stopped and delete the Roon-Extension-Manager and installed it again in Synology’sTelnet with the command I used before. Then in Roon I installed the Alarm-Clock extension, but now I typed the timezone (Europe/Amsterdam) in the Alarm-Clock options.The messages (in the Log for Alarm-Clock) in every second about the timezone disappeared.

This is normal behavior of the Roon API, if you see this message or not depends on if there is something playing. It is not related to the selected timezone.

When using containers, each container has its own environment. This means that you have to set the timezone variable for the Alarm Clock even if you already set it for the Extension Manager.

Yes, it is used to check if there is still a connection with the Roon core. This takes care that the extensions get back online after e.g. an update of the core.

I cannot reproduce this problem. Only thing that is kept is the configuration of the alarms, and for some reason that gives problems in your case. What version of Docker is on the Synology?

docker --version

CD Ripper v0.1.1 is available now

This update should fix the drive access problems.

Take the following actions in the Extension Manager to update:

  • Uninstall the CD Ripper
  • Update the Extension Repository to version 0.3.2
  • Install the CD Ripper as described in the first post
1 Like

This gets a step nearer. Recognises the drive but won’t configure the drive keeps asking to change disc and restart it.

-> REQUEST 0 com.roonlabs.registry:1/info 
<- COMPLETE 0 Success {"core_id":"25e612ca-a515-4638-90e7-26b715971e80","display_name":"Roon Music","display_version":"1.6 (build 416) stable"}
-> REQUEST 1 com.roonlabs.registry:1/register {"extension_id":"com.theappgineer.cd-ripper","display_name":"CD Ripper","display_version":"0.1.1","publisher":"The Appgineer","email":"theappgineer@gmail.com","required_services":[],"optional_services":[],"provided_services":["com.roonlabs.settings:1","com.roonlabs.status:1","com.roonlabs.pairing:1","com.roonlabs.ping:1"],"website":"https://community.roonlabs.com/t/roon-extension-cd-ripper/66590"}
<- CONTINUE 1 Registered {"core_id":"25e612ca-a515-4638-90e7-26b715971e80","display_name":"Roon Music","display_version":"1.6 (build 416) stable","token":"d69b73e7-651e-4f92-b26b-ff6ac644b96c","provided_services":[],"http_port":9100}
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {"subscription_key":"21"}
-> CONTINUE 1 Subscribed {"message":"Drive scanning in progress...","is_error":false}
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {"subscription_key":"22"}
-> CONTINUE 2 Subscribed {"paired_core_id":"25e612ca-a515-4638-90e7-26b715971e80"}
-> REQUEST 0 com.roonlabs.registry:1/info 
<- COMPLETE 0 Success {"core_id":"f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c","display_name":"MASTERCHIEF","display_version":"1.6 (build 416) stable"}
-> REQUEST 1 com.roonlabs.registry:1/register {"extension_id":"com.theappgineer.cd-ripper","display_name":"CD Ripper","display_version":"0.1.1","publisher":"The Appgineer","email":"theappgineer@gmail.com","required_services":[],"optional_services":[],"provided_services":["com.roonlabs.settings:1","com.roonlabs.status:1","com.roonlabs.pairing:1","com.roonlabs.ping:1"],"website":"https://community.roonlabs.com/t/roon-extension-cd-ripper/66590"}
<- CONTINUE 1 Registered {"core_id":"f7e4028a-6c5a-4ce3-8ef4-400a66bfc62c","display_name":"MASTERCHIEF","display_version":"1.6 (build 416) stable","token":"9519e5ab-43a8-432f-a805-2442e8497403","provided_services":[],"http_port":9100}
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {"subscription_key":"3"}
-> CONTINUE 1 Subscribed {"message":"Drive scanning in progress...","is_error":false}
<- REQUEST 2 com.roonlabs.pairing:1/subscribe_pairing {"subscription_key":"4"}
-> CONTINUE 2 Subscribed {"paired_core_id":"25e612ca-a515-4638-90e7-26b715971e80"}
stderr: "WARNING:whipper.command.drive:no read offset found. Run 'whipper offset find'"
-> CONTINUE 1 Changed {"message":"Please configure drive","is_error":true}
-> CONTINUE 1 Changed {"message":"Please configure drive","is_error":true}
stderr: "WARNING:whipper.command.drive:unknown whether audio cache can be defeated. Run 'whipper drive analyze'"
-> CONTINUE 1 Changed {"message":"Please configure drive","is_error":true}
-> CONTINUE 1 Changed {"message":"Please configure drive","is_error":true}
stdout: "drive: /dev/cdrom, vendor: Slimtype, model: eBAU108  6 L    , release: PL0M"
{ drive: '/dev/cdrom',
  vendor: 'Slimtype',
  model: 'eBAU108  6 L',
  release: 'PL0M' }
whipper exited with code: 0
<- REQUEST 6 com.roonlabs.settings:1/subscribe_settings {"subscription_key":"23"}
-> CONTINUE 6 Subscribed {"settings":{"values":{},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 8 com.roonlabs.settings:1/save_settings {"settings":{"values":{"action":2}},"is_dry_run":true}
-> COMPLETE 8 Success {"settings":{"values":{"action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 11 com.roonlabs.settings:1/save_settings {"settings":{"values":{"action":2,"share":""}},"is_dry_run":true}
-> COMPLETE 11 Success {"settings":{"values":{"action":2,"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 13 com.roonlabs.settings:1/save_settings {"settings":{"values":{"action":2,"share":""}},"is_dry_run":false}
-> COMPLETE 13 Success {"settings":{"values":{"action":2,"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 6 Changed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 14 com.roonlabs.settings:1/unsubscribe_settings {"subscription_key":"23"}
-> COMPLETE 14 Unsubscribed 
stdout: "Analyzing drive caching behaviour   0 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stderr: "CRITICAL:whipper.command.drive:cannot analyze the drive: is there a CD in it?"
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
whipper exited with code: 0
<- REQUEST 52 com.roonlabs.settings:1/subscribe_settings {"subscription_key":"24"}
-> CONTINUE 52 Subscribed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 54 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":true}
-> COMPLETE 54 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 56 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":false}
-> COMPLETE 56 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 52 Changed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 57 com.roonlabs.settings:1/unsubscribe_settings {"subscription_key":"24"}
-> COMPLETE 57 Unsubscribed 
stdout: "Analyzing drive caching behaviour   0 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stderr: "CRITICAL:whipper.command.drive:cannot analyze the drive: is there a CD in it?"
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
whipper exited with code: 0
<- REQUEST 74 com.roonlabs.settings:1/subscribe_settings {"subscription_key":"25"}
-> CONTINUE 74 Subscribed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 77 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":true}
-> COMPLETE 77 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 90 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":false}
-> COMPLETE 90 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 74 Changed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 91 com.roonlabs.settings:1/unsubscribe_settings {"subscription_key":"25"}
-> COMPLETE 91 Unsubscribed 
stdout: "Analyzing drive caching behaviour   0 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stderr: "CRITICAL:whipper.command.drive:cannot analyze the drive: is there a CD in it?"
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
whipper exited with code: 0
<- REQUEST 129 com.roonlabs.settings:1/subscribe_settings {"subscription_key":"26"}
-> CONTINUE 129 Subscribed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 132 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":true}
-> COMPLETE 132 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 134 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":false}
-> COMPLETE 134 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 129 Changed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 135 com.roonlabs.settings:1/unsubscribe_settings {"subscription_key":"26"}
-> COMPLETE 135 Unsubscribed 
stdout: "Analyzing drive caching behaviour   0 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stderr: "CRITICAL:whipper.command.drive:cannot analyze the drive: is there a CD in it?"
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
whipper exited with code: 0
<- REQUEST 222 com.roonlabs.settings:1/subscribe_settings {"subscription_key":"27"}
-> CONTINUE 222 Subscribed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 224 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":true}
-> COMPLETE 224 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 226 com.roonlabs.settings:1/save_settings {"settings":{"values":{"share":"","action":2}},"is_dry_run":false}
-> COMPLETE 226 Success {"settings":{"values":{"share":"","action":2},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 1 Changed {"message":"Drive configuration in progress...","is_error":false}
-> CONTINUE 222 Changed {"settings":{"values":{"share":""},"layout":[{"type":"group","title":"Global Settings","items":[{"type":"string","title":"Share","setting":"share"}]},{"type":"dropdown","title":"Action","values":[{"title":"(select action)"},{"title":"Configure Drive","value":2}],"setting":"action"}],"has_error":false}}
<- REQUEST 227 com.roonlabs.settings:1/unsubscribe_settings {"subscription_key":"27"}
-> COMPLETE 227 Unsubscribed 
stdout: "Analyzing drive caching behaviour   0 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour   0 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stdout: "Analyzing drive caching behaviour 100 %"
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
-> CONTINUE 1 Changed {"message":"Analyzing drive caching behaviour 100 %","is_error":false}
stderr: "CRITICAL:whipper.command.drive:cannot analyze the drive: is there a CD in it?"
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
-> CONTINUE 1 Changed {"message":"Please insert a CD and restart drive configuration","is_error":true}
whipper exited with code: 0