[Enhancement] Avoid blocking UI while adding existing repo#1643
[Enhancement] Avoid blocking UI while adding existing repo#1643DaffyTheDuck wants to merge 1 commit intoborgbase:masterfrom
Conversation
|
Hi! @real-yfprojects , is this right ? like the UI is not freezing now, but after reverting back to the old changes I cant reproduce the issue anymore, I've tried editing the settings.db and even deleted the testing version. Any clue what I did wrong ? |
I don't know what you were experiencing before, but this looks good. What happens when you close the dialog, the main window, quit vorta or try to edit anything inside vorta? |
Hi! Actually that was my mistake 😓 , I was running vorta from the backup repo and reverted the changes in main repo 😓 But is this the required solution ? like are there more changes required ? |
As I said. This is the right approach. What happens when you close the dialog, the main window or quit vorta? |
005e97f to
b250143
Compare
|
Hi! this seems to work on my machine! waiting for your review 😄 also I've had a question about migrations, how can I perform the migrations 🤔 |
|
@m3nu What was your Intention with the PR, would you consider it fine when the GUI stays responsive but you still can't do anything else while borg is running? |
|
This code was written long ago. It didn't seem important to do, anything else, while adding a repo. No specific consideration. |
But as per the current GUI, you can not do anything until you close the dialog displayed 🤔 |
Which migrations? Usually vorta migrates its database automatically. |
Oh, okay, means whenever I run vorta it applies the migrations ? |
|
Yes, if needed. |
96f9671 to
85e9d09
Compare
real-yfprojects
left a comment
There was a problem hiding this comment.
Is this right?
Besides some minor problems this is right.
| thread.result.connect(self.run_result) | ||
| self.thread = thread # Needs to be connected to self for tests to work. | ||
| self.thread.run() | ||
| job = BorgInfoRepoJob(params['cmd'], params) |
There was a problem hiding this comment.
This will be queued in the default queue rather than the repo specific queue.
There was a problem hiding this comment.
But I guess the BorgInfoRepoJob is used to validate existing repo right ?
There was a problem hiding this comment.
Yes, that's right. You have to pass an extra argument iirc.
There was a problem hiding this comment.
Yes, that's right. You have to pass an extra argument iirc.
Hi! sorry for being inactive, I was sick 😅
I see the BorgJob accepting 3 params, 2 are already there, the third one should be sending value default by default since it is not provided 🤔 I was wondering how it's deciding about queue (this question might sound dumb but 😅 )
is this the default value we are talking about 🤔 , because jobs like backup are added to 1 I guess
There was a problem hiding this comment.
See this line:
vorta/src/vorta/application.py
Line 113 in 1f12782
There was a problem hiding this comment.
Hi! added the code, but is there any way to verify it that it is going in default queue since I'm unsure it's working properly :)
|
|
||
| def cancel_job(self): | ||
| if self.job: | ||
| self.job.cancel() |
There was a problem hiding this comment.
Sadly this only cancelt the job if its already running. If the job manager hasn't picked up the job yet, that is the job still sits in the queue, it won't be cancelled.
There was a problem hiding this comment.
Hi! I'm a bit confused testing this, any suggestion on how can I test this ?
There was a problem hiding this comment.
Currently there is no way to reproduce this with the GUI. So you can decide not to deal with it but instead write a code comment on the issue.
There was a problem hiding this comment.
Currently there is no way to reproduce this with the GUI. So you can decide not to deal with it but instead write a code comment on the issue.
The code will be included in cancel_job method since it will check for both, if running or in queue, should I create a duplicate method for that and comment it ?
There was a problem hiding this comment.
Hi! @real-yfprojects , Since this is not reproducible, I'm not sure that the code will work or not, then is it okay to push the code even it is commented ?
There was a problem hiding this comment.
I can only decide after seeing the code.
|
I noticed that the |
when we try to cancel (close) the add repo dialog without hitting the OK? I noticed that too, I added a try-except block for that in |
The cancel button should work now 👍🏼 |
real-yfprojects
left a comment
There was a problem hiding this comment.
You are n't setting a meaningful status message yet which was requested in #1306.
| if self.job: | ||
| self.job.cancel() |
There was a problem hiding this comment.
There is no self.job currently.
There was a problem hiding this comment.
There is no
self.jobcurrently.
Hm! The close() method is working!, but I also noticed that you have to cancel the job within a specific time gap it might vary from machine to machine i guess, but after that time gap it adds the repo anyways
There was a problem hiding this comment.
c234fca to
7edd15f
Compare
- Avoids freezing UI when an existing repo is added Closes borgbase#1306
7edd15f to
9ac38a1
Compare
|
Hi! and sorry I was away leaving this PR open with no activity, I was actually having my Practical exams 😅 I've updated the code accordingly, waiting for your review @real-yfprojects 😄 |
|
Pls also show a status message while |
Sorry! did not get that exactly |
Hi! Did you mean, while the app is backing up the data? l instead of messages like |
|
No it should show a message while the repository is accessed (verified) for the first time. Something like |
|
Hi! @real-yfprojects, sorry, this is taking longer than expected, I'm completely engrossed in preparation of my upcoming semester exam from May 8th. I will be completing this in a slow pace till then. Sorry for inconvenience :) |
|
No worries. |




Description
Related Issue
Closes #1306
Motivation and Context
When adding a existing repository the UI freezes, this change might solve this issue
How Has This Been Tested?
I've tested this by adding a repository which is used to crash the UI
Screenshots (if appropriate):
Types of changes
Checklist:
I provide my contribution under the terms of the license of this repository and I affirm the Developer Certificate of Origin.