Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash in DiscoveryPhase::findAndCancelDeletedJob #7722

Closed
ogoffart opened this issue Feb 5, 2020 · 3 comments
Closed

Crash in DiscoveryPhase::findAndCancelDeletedJob #7722

ogoffart opened this issue Feb 5, 2020 · 3 comments
Assignees
Labels
p2-high Escalation, on top of current planning, release blocker type:bug

Comments

@ogoffart
Copy link
Contributor

ogoffart commented Feb 5, 2020

https://sentry.io/organizations/owncloud/issues/1486987547/?project=79001&sort=new

Thread 3524 Crashed:
0   owncloud_csync.dll              0x6869e9f0          OCC::Utility::crash (utility.cpp:406)
1   owncloudsync.dll                0x694b2e50          OCC::mirallLogCatcher (logger.cpp:49)
2   Qt5Core.dll                     0x682233d1          qt_message_print (qlogging.cpp:1836)
3   Qt5Core.dll                     0x6822323a          qt_message (qlogging.cpp:374)
4   Qt5Core.dll                     0x68221b59          QMessageLogger::fatal (qlogging.cpp:885)
5   owncloudsync.dll                0x694abd30          OCC::DiscoveryPhase::findAndCancelDeletedJob (discoveryphase.cpp:166)
6   owncloudsync.dll                0x694a2151          OCC::ProcessDirectoryJob::processFileAnalyzeLocalInfo (discovery.cpp:957)
7   owncloudsync.dll                0x694a13e2          OCC::ProcessDirectoryJob::processFile (discovery.cpp:365)
8   owncloudsync.dll                0x694a0538          OCC::ProcessDirectoryJob::process (discovery.cpp:178)
9   owncloudsync.dll                0x6948eaed          <lambda>::operator()<T> (discovery.cpp:1407)
10  owncloudsync.dll                0x6949eaa0          QtPrivate::QFunctorSlotObject<T>::impl (qobjectdefs_impl.h:439)
11  Qt5Core.dll                     0x68385e08          QMetaObject::activate (qobject.cpp:3783)
12  Qt5Core.dll                     0x683860dd          QMetaObject::activate (qobject.cpp:3656)
13  owncloudsync.dll                0x6953e014          OCC::DiscoverySingleDirectoryJob::finished (moc_discoveryphase.cpp:398)
14  owncloudsync.dll                0x694aca8d          OCC::DiscoverySingleDirectoryJob::lsJobFinishedWithoutErrorSlot (discoveryphase.cpp:478)
15  Qt5Core.dll                     0x68385e08          QMetaObject::activate (qobject.cpp:3783)
16  Qt5Core.dll                     0x683860dd          QMetaObject::activate (qobject.cpp:3656)
17  owncloudsync.dll                0x6953e5af          OCC::LsColJob::finishedWithoutError (moc_networkjobs.cpp:527)
18  Qt5Core.dll                     0x68385e08          QMetaObject::activate (qobject.cpp:3783)
19  Qt5Core.dll                     0x683860dd          QMetaObject::activate (qobject.cpp:3656)
20  owncloudsync.dll                0x6953e5cf          OCC::LsColXMLParser::finishedWithoutError (moc_networkjobs.cpp:335)
21  owncloudsync.dll                0x694cc104          OCC::LsColXMLParser::parse (networkjobs.cpp:304)
22  owncloudsync.dll                0x694c8cb3          OCC::LsColJob::finished (networkjobs.cpp:394)
23  owncloudsync.dll                0x694bf47c          OCC::AbstractNetworkJob::slotFinished (abstractnetworkjob.cpp:275)
24  Qt5Core.dll                     0x68385e08          QMetaObject::activate (qobject.cpp:3783)
25  Qt5Core.dll                     0x683860dd          QMetaObject::activate (qobject.cpp:3656)
26  Qt5Network.dll                  0x693f977f          QNetworkReply::finished (moc_qnetworkreply.cpp:384)

the problem is that the enforce there is triggered:

ENFORCE((*it)->_instruction == CSYNC_INSTRUCTION_REMOVE
// re-creation of virtual files count as a delete
|| ((*it)->_type == ItemTypeVirtualFile && (*it)->_instruction == CSYNC_INSTRUCTION_NEW)
|| ((*it)->_isRestoration && (*it)->_instruction == CSYNC_INSTRUCTION_NEW)
);

Looks like we should remove the item from the deleted list there.
I don't know how this can be reproduced in a test

@HanaGemela
Copy link
Contributor

Next steps: Patch release if needed, stop auto updater if needed, stop branded release if needed

@HanaGemela HanaGemela added type:bug p2-high Escalation, on top of current planning, release blocker labels Feb 6, 2020
ogoffart added a commit that referenced this issue Feb 6, 2020
This was an attempt to reproduce #7722, but this actually does not
reproduce it
ogoffart added a commit that referenced this issue Feb 6, 2020
…edJob

Issue #7722

I was not able to reproduce the crash, but this is seen in the crash
reporter.

The crash occurs because the ENFORCE in that function is reached. One way
this could happen is because findAndCancelDeletedJob would be called
for the same path multiple times. Potentially this could perhaps be caused
by duplicated inodes are duplicated. But this is hard to test.
ogoffart added a commit that referenced this issue Feb 10, 2020
This was an attempt to reproduce #7722, but this actually does not
reproduce it
ogoffart added a commit that referenced this issue Feb 10, 2020
…edJob

Issue #7722

I was not able to reproduce the crash, but this is seen in the crash
reporter.

The crash occurs because the ENFORCE in that function is reached. One way
this could happen is because findAndCancelDeletedJob would be called
for the same path multiple times. Potentially this could perhaps be caused
by duplicated inodes are duplicated. But this is hard to test.
@michaelstingl
Copy link
Contributor

should be fixed – reopen if we see still see issues in 2.6.2…

@HanaGemela
Copy link
Contributor

@ogoffart please provide steps to test if possible

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p2-high Escalation, on top of current planning, release blocker type:bug
Projects
None yet
Development

No branches or pull requests

3 participants