Replies: 19 comments 58 replies
-
I tried to do a full resync of my live files (150GB,200k files, 30k dirs) in monitor mode, but it keeps crashing after about 20 minutes. I did not loose internet connectivity. It seems to only happen when I use Bellow is
|
Beta Was this translation helpful? Give feedback.
-
Yes, I actually encountered the issue twice with alpha-4 in the past, but I assumed I lost connectivity at the time. It worked fine when I restarted the client, and I was getting the final I have now re-tested with Perhaps I triggered some kind of a rate limit at OneDrive servers after I started a full resync today? I will re-try tomorrow and let you know if it cleared. |
Beta Was this translation helpful? Give feedback.
-
@bpozdena I am no suggesting there your crashes are a result of this oversight, but if you could rebuild to |
Beta Was this translation helpful? Give feedback.
-
@bpozdena
Unfortunately I didnt have debugging fully enabled ... re-testing now with this enabled. |
Beta Was this translation helpful? Give feedback.
-
@bpozdena
This is very IPv6 specific .... and, v2.5.x will use IPv6 and IPv4 for resolution, unless told otherwise. I am going to 'lock' my IP protocol version to IPv4 via 'ip_protocol_version' - https://github.com/abraunegg/onedrive/blob/onedrive-v2.5.0-alpha-5/docs/application-config-options.md#ip_protocol_version |
Beta Was this translation helpful? Give feedback.
-
@bpozdena This has been running for >45 mins no crash or issue, using an automated script to generate data / delete data on repeat. Will let this process run overnight and see what happens. If no crash overnight, will remove the 'ip_protocol_version' and re-test. |
Beta Was this translation helpful? Give feedback.
-
I was curious why the sync was taking so long and then I noticed that the client is syncing even all my skip_dirs, oops! I than figured that the client started sync with all default values due to a deprecated key This config loading bug happens only when If SCENARIO 1: Config does not load when a deprecated option is at the beginning of the config file:
Scenario 2: Config loads OK when a deprecated option is at the end of the config file:
|
Beta Was this translation helpful? Give feedback.
-
@bpozdena |
Beta Was this translation helpful? Give feedback.
-
Please look at This is now a configurable option: https://github.com/abraunegg/onedrive/blob/onedrive-v2.5.0-alpha-5/docs/application-config-options.md#threads
Default is '8' , max is '16' I have also made some libcurl adjustments, please can you test this against your much larger data set please and advise. |
Beta Was this translation helpful? Give feedback.
-
@abraunegg Build version Opened fd
Logs
|
Beta Was this translation helpful? Give feedback.
-
@bpozdena
|
Beta Was this translation helpful? Give feedback.
-
I strongly suggest that you fix your environment first and foremost. That you are increasing all your network connectivity by disabling DNS caching is really a bad item to do, but also if you are using your ISP's provided modem and it fails after 2000 TCP connections - that is something that you really should be fixing. Running your own DNS Server at home is a really easy item to do (gives you better response times than even most ISP or home routers) and caches your responses. Your ISP modem however - you need to get this updated and/or replaced. |
Beta Was this translation helpful? Give feedback.
-
In most functions the API is called and shutdown - and in that particular function it is (at the end). The instance 'createDirectoryOnlineOneDriveApiInstance' is reused throughout the entire function. I have made a 'tweak' to this function only - please can you re-run any testing you did when you came to the conclusion that this function was causing issues. If you rebuild your 'alpha-5' client version, the fix is in If this fix solves the issue you were seeing, then, all functions where an API is being created will need a similar fix. I think however a wider solution is looking how API instances are created & reused is what is needed - and combined with the refactor API piece as well. |
Beta Was this translation helpful? Give feedback.
-
@bpozdena Additionally, using the modified 'watcher' script, these were the high watermarks. I also fixed the script as it was counting dud entries for sockets and file descriptors as well:
I do not think that there is a TCP socket issue with the application - I think your issue is 100% environmental to you. Given the reproducibility of your issue, can you please start detailing more of your environment so that I can built potentially something that is reflective and then try and duplicate the very odd situation you are seeing. You may be encountering a router bug, a firewall bug, a Linux bug .... but essentially you potentially have a network bug in your setup somewhere is what I suspect.
This is not the case as is shown above - only 16 TCP connections at maximum is used
This is what is happening however .. combined with your request to make the threads user configurable.
When timeouts are reached, the client will 'retry' and should not crash. The timeout logic attempts to retry also with flagging curl to use a 'fresh connection'. When these 'curl' timeouts have been seen, 100% this has been when 'libcurl' is deciding for whatever reason to use IPv6 resolution rather than IPv4 responses. This is why I have also been advising you to use Most importantly - I cant fix something if I cant reproduce it to understand what is going on. Please can you:
|
Beta Was this translation helpful? Give feedback.
-
@abraunegg
|
Beta Was this translation helpful? Give feedback.
-
No .. HTML characters should not be in filenames or folder names anywhere - to ensure that the names used are as 'safe' as possible, This is why this warning exists. |
Beta Was this translation helpful? Give feedback.
-
@abraunegg Lines 1967 to 1977 in 5a32a32 Lines 920 to 926 in 5a32a32 |
Beta Was this translation helpful? Give feedback.
-
@bpozdena , @JC-comp
Does this PR put together by @JC-comp make any difference in your environment ? |
Beta Was this translation helpful? Give feedback.
-
Currently, the exit handler in the design only supports monitor mode to clean up certain resources. Here are some related design issues
Regarding signal safety, performing heavy operations, including logging, in a signal handler is ill-advised. Considering points 1 and 2, and #2610, do you believe a rewrite that only sets the flag in the sync engine's signal handler, allowing the sync engine to gracefully shut down and return control to the main function to trigger the cleanup process, is feasible? |
Beta Was this translation helpful? Give feedback.
-
As part of the ongoing development of v2.5.0, client version v2.5.0-alpha-5 is now available for testing.
This version is going to be used to again validate 90+ Use Cases for Personal, Business and SharePoint Libraries to validate functionality as per intention|expectation.
Summary of Changes for 'alpha-5'
Feature Requests
Bug Fixes
Other Changes | Fixes
Documentation
Whats still missing?
Can I use this version with my normal account?
You can use your normal account if you wish (this is your choice), however this is 100% alpha quality software at the moment. If you experience data loss or something else with your real data - whilst not good, please take every effort to not use this code with your real data.
There will be functionality differences, there will be bugs or things that are not working right - the Use Case Testing done with all 'alpha' versions should have shaken most of this out, but you never know.
My ask is that you create a test report - what works, what does not work, what could be potentially changed | improved - basically I am soliciting some feedback on where this total re-write is heading as it matures to a v2.5.0 release.
I envisage that 'alpha-5', once it has gone through all my Use Cases for each account, will be pushed as a 'beta-1' pre-release
How can you get v2.5.0-alpha-5 ?
You need to build this client from source. Follow the high level directions here to get the development requirements installed first: https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md#building-from-source---high-level-requirements
Next clone and checkout the PR:
To run the PR, you need to run the client from the PR build directory:
When running the PR, your version should be as per below or greater:
The important point is
v2.5.0-alpha-5
. Thev2.4.25-XX-abcdefg
will change as new commits are put into the PR branch, whilst things are added/fixed/updated.Documentation for 'alpha-5'
The existing GitHub master documentation does not match what v2.5.0 does or supports at present. Please refer to the updated docs here: https://github.com/abraunegg/onedrive/tree/onedrive-v2.5.0-alpha-5/docs
I have no test files or test data - what can I use?
In developing this application I use a script as per below to generate random data:
Update
DESTDIR
with the right directory and adjustFILES
andFOLDERS
as desired. The above settings will create 10 folders, with each folder having 10 files. with each file size between 6KB and 125KB.To increase (or decrease) the random file size, change
BLOCKSIZE
, generally use ^2 values: 1,2,4,8,16,32,64,128,256 and so on.At 128 you will get files from 100KB -> ~3.8MB, at 256 most files will be between 500KB --> 7.5MB
Beta Was this translation helpful? Give feedback.
All reactions