gilestrolab / ethoscope

a platform from monitoring animal behaviour in real time from a raspberry pi
http://lab.gilest.ro/ethoscope/
GNU General Public License v3.0
17 stars 25 forks source link

Video_backup service not working inside docker #191

Open Anuragbio opened 1 month ago

Anuragbio commented 1 month ago

Dear Dr. Gilestro,

We are using the Ethoscope platform for the behavioral monitoring of flies. We have successfully tracked flies using the track option on the node, and the backup is stored at /mnt/ethoscope_data/results/0011837902f74aaf86c865e45a1126ca/ETHOSCOPE_001.

However, when we click the record video button, the recording starts, and the video is saved on the Ethoscope device. Unfortunately, no video can be found on the node. We have looked into the available solution here (https://github.com/gilestrolab/ethoscope/issues/146), but since we are using Docker, we cannot run systemctl commands.

Please let us know how we can troubleshoot or what information can help you to rectify this issue.

Ethoscope device:

Hardware info • SD card age: 11 days, 3h, 50min, 5s • SD card version: 20230306_ethoscope_000.img • PI version : Raspberry Pi 3 Model B Plus Rev 1.4 • PI camera : {"IFD0.Model":"RP_imx219","IFD0.Make":"RaspberryPi","version":"PINoIR 2"} Ethoscope node: Platform- Docker

Version: [master] b73444... (2024-01-27 11:30:45)

Best regards, Anurag

ggilestro commented 1 month ago

Assuming you mounted your volumes using the default destinations in the docker-compose.yml file, the videos should be in the folder /mnt/ethoscope_data/videos/. They are copied there from the service called ethoscope_video_backup which should be running by default even with the docker container.

Keep in mind the Docker solution is still rather experimental. If you can, I'd advise using a dedicated installation. Logging with the docker can be accessed using the docker command: docker logs ethoscope-node. If the service runs normally, you should see something like:

ethoscope_video_backup.service: INFO:root:Starting backup round
ethoscope_video_backup.service: INFO:root:Found 0 devices online: 
ethoscope_video_backup.service: INFO:root:Backup finished at t=1715940387
ethoscope_video_backup.service: 
Anuragbio commented 1 month ago

Dear Dr. Gilestro,

Thank you for your reply. We have worked upon gathering information from both docker logs and standalone system:

1) Docker logs: The log suggests the following

ethoscope-node | ethoscope_backup.service: ethoscope-node | ethoscope_backup.service: INFO:root:Backup status for 0011837902f74aaf86c865e45a1126ca is 99.94% ethoscope-node | ethoscope_backup.service: INFO:root:Backup done for for device 0011837902f74aaf86c865e45a1126ca ethoscope-node | ethoscope_backup.service: INFO:root:Pool mapped ethoscope-node | ethoscope_backup.service: INFO:root:Joining now ethoscope-node | ethoscope_backup.service: INFO:root:Backup finished at t=1716002511 ethoscope-node | ethoscope_backup.service: ethoscope-node | ethoscope_video_backup.service: INFO:root:Starting backup ethoscope-node | ethoscope_video_backup.service: INFO:root:Updating list of devices ethoscope-node | ethoscope_video_backup.service: INFO:root:device map is: ['0011837902f74aaf86c865e45a1126ca'] ethoscope-node | ethoscope_video_backup.service: INFO:root:Found 1 devices online ethoscope-node | ethoscope_video_backup.service: INFO:root:Initiating backup for device 0011837902f74aaf86c865e45a1126ca ethoscope-node | ethoscope_video_backup.service: INFO:root:Backup done for for device 0011837902f74aaf86c865e45a1126ca ethoscope-node | ethoscope_video_backup.service: INFO:root:Pool mapped ethoscope-node | ethoscope_video_backup.service: INFO:root:Joining now ethoscope-node | ethoscope_video_backup.service: INFO:root:Backup finished at t=1716002785 ethoscope-node | ethoscope_video_backup.service: ethoscope-node | ethoscope_backup.service: INFO:root:Starting backup ethoscope-node | ethoscope_backup.service: INFO:root:Updating list of devices ethoscope-node | ethoscope_backup.service: INFO:root:device map is: ['0011837902f74aaf86c865e45a1126ca'] ethoscope-node | ethoscope_backup.service: INFO:root:Found 1 devices online ethoscope-node | ethoscope_backup.service: INFO:root:Initiating backup for device 0011837902f74aaf86c865e45a1126ca ethoscope-node | ethoscope_backup.service: INFO:root:Running backup for device 0011837902f74aaf86c865e45a1126ca ethoscope-node | ethoscope_backup.service: INFO:mysql.connector:package: mysql.connector.plugins ethoscope-node | ethoscope_backup.service: INFO:mysql.connector:plugin_name: mysql_native_password ethoscope-node | ethoscope_backup.service: INFO:mysql.connector:AUTHENTICATION_PLUGIN_CLASS: MySQLNativePasswordAuthPlugin ethoscope-node | ethoscope_backup.service: INFO:root:Initializing local database static tables at /ethoscope_data/results/0011837902f74aaf86c865e45a1126ca/ETHOSCOPE_001/2024-05-18_02-32-54/2024-05-18_02-32-54_0011837902f74aaf86c865e45a1126ca.db

With Live CD/USB: Also gives the following error: video_backup_commands error_log

In this case, util.backup.helpers gives an error.

Best regards, Anurag

ggilestro commented 1 month ago

Judging from these lines:

ethoscope-node | ethoscope_video_backup.service: INFO:root:Initiating backup for device 0011837902f74aaf86c865e45a1126ca
ethoscope-node | ethoscope_video_backup.service: INFO:root:Backup done for for device 0011837902f74aaf86c865e45a1126ca

The video seems to backup just fine. Are you sure you are looking in the right location?

Anuragbio commented 1 month ago

Thank you for your reply. We are using the YML file below in which "/mnt/ethoscope_data" is the folder where we can find .db files (complete folder path "/mnt/ethoscope_data/results/0011837902f74aaf86c865e45a1126ca/ETHOSCOPE_001"). However, in the case of video files, they can only be found on ethoscope and not in the video folder of this path "/mnt/ethoscope_data/".

Contents of YML file

"version: '3.8'

services: ethoscope-node: build: . image: ggilestro/ethoscope-node container_name: ethoscope-node restart: always volumes:

ggilestro commented 3 weeks ago

I am sorry but I cannot reproduce this. Video backup works out of the box for me on dockers, both when the containers run in linux or windows (I have not tried macOS).