Odrive doesn't sync changes in folders on Fedora 39

Hi everyone. I was able to install odrive on Fedora 39 succesfully. It took a while but it downloaded all my files (about 50GB) from my Box account.

After restarting the computer for the first time after the installation, it started to fail. When I log in to my session I run the following command line to start the odrive-agent:

nohup “$HOME/.odrive-agent/bin/odriveagent” > /dev/null 2>&1 &

Then, I check if it is active with the following command , and it say it is:

“$HOME/.odrive-agent/bin/odrive” status

I got the following output:


odrive Make Cloud Storage THE WAY IT SHOULD BE.

isActivated: True hasSession: True
email: XXXXXXXXXXX accountType: XXXXXXXX
syncEnabled: True version: prod 1016
placeholderThreshold: neverDownload autoUnsyncThreshold: never
downloadThrottlingThreshold: unlimited uploadThrottlingThreshold: normal
autoTrashThreshold: never Mounts: 1
xlThreshold: never Backups: 0

Sync Requests: 0
Background Requests: 0
Uploads: 0
Downloads: 0
Trash: 3
Waiting: 0
Not Allowed: 0


However, nothing happens. I try to re-run the following sync script:

python “$HOME/.odrive-agent/bin/odrive.py” sync “$HOME/odrive/Box” --recursive

And got the next output:

Done with recursive sync of /home/XXXXXX/odrive/Box

No sync of the file changes at all.

Would please somebody indicates me if I am doing something wrong?

Thanks a lot in advance!

Hi @neobassman,
The sync command won’t perform a refresh of the folders, so it will sync based on the remote information is has already gathered. My guess is that this is what you are seeing.

If there have been changes since the last full sync you performed, you would need to refresh the remote folders. The agent will do this on its own, in the background, periodically. If your structure is very large it can take quite a while, which is why it isn’t done very often.

You can also force an immediate remote refresh of a folder using the ‘refresh’ command.

Thanks for the answer @Tony . I double check and I guess I found a way to make it work. I Run this script first:

nohup “$HOME/.odrive-agent/bin/odriveagent” > /dev/null 2>&1 &

Then, check the status:

“$HOME/.odrive-agent/bin/odrive” status

Then I refresh the folders:

python “$HOME/.odrive-agent/bin/odrive.py” refresh “$HOME/odrive/Box”

and empty the rubbish if necessary.

That works, although it takes almost 20 minutes at a high-speed-cooperative-level internet connection. My question now is related to the speed of the protocol on Linux. Is it always that slow? Would it improve with a subscription?

Thanks!

Hi @neobassman,
A couple of notes/questions:

This command runs the agent in the background and it will remain running. I just want to make sure that you are not running this multiple times.

This command would only refresh the Box folder. It doesn’t perform a recursive refresh (it doesn’t refresh all folders underneath the Box folder).

What you may be seeing here is that the odrive agent is kicking off its background remote refresh, which will refresh all folders. It kicks-off about 15 minutes after the agent starts.

If you keep the agent running, then it will run that background refresh a little less than twice a day.

Thanks @Tony !! So, according to that, I should just run the first script (“nohup…”) once, as I have been doing it, and run the refresh command if I need to update the box folder (e.g., Somebody just added a file to a shared folder). Is that correct?

Similarly, when I update/add files to the box folder on my computer, should I run the refresh command to upload them at that moment? or the agent will do it for me as soon as I save the file? or it will take more time for the agent to upload those files?

Thanks in advance for all your help!

Hi @neobassman,

Yes. How are you stopping the agent? Are you using the ‘shutdown’ command, or just killing the process?

Yes. If you want to perform an immediate refresh of a folder, you can use the ‘refresh’ command for the path you want to refresh /Path/To/Shared/Box/Folder. Otherwise odrive will refresh it automatically when it does its background refresh

Yes. The Linux agent doesn’t currently have a filesystem hook to get filesystem callbacks when there is a local action in the odrive folder. The client will also do a local filesystem scan of the odrive folder every 30 minutes.

Hi @Tony ,

This has been quite informative. Now I understand the process better. I have been using Mac for the last 15 years and never had to use a terminal for this type of purpose, but now everything makes more sense.

About your questions:

I have not been stopping the agent. I just run the “nohup…” command when I log in to my laptop, then the refresh command, and then close the terminal and do whatever I have to do.

Thank you! So, does this take a particular time to be done (besides of course the possible delay because of the file size), or this is almost immediate? Does this have a band limit? or does it use the available band of the connection?

Thanks a lot for all your help!

Hi @neobassman,

The nohup command allows the agent to run without being tied to the terminal session, so it will actually continue running even if you close the terminal. Usually this is preferable for folks because they can have the agent running in the background and then open terminal sessions when they need to to execute commands against the sync agent. Using nohup to run the agent, then closing the terminal, then opening a new terminal later to run the agent again may be causing multiple agents to run, which you don’t want/need.

When using the refresh command, it should be done nearly immediately. The agent will try to use whatever bandwidth is available (within account machine and environment capabilities), backing off a small amount so that it doesn’t completely saturate your bandwidth and prevent other applications from being able to function properly.