Summary: | KDevelop 5.3.3 abort due to "Failed to open repository" (Persistent Declaration Table) | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | RJVB <rjvbertin> |
Component: | general | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED NOT A BUG | ||
Severity: | crash | Keywords: | drkonqi |
Priority: | NOR | ||
Version First Reported In: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
workaround for the abort
no abort and more informative version_XXX file |
Description
RJVB
2019-07-22 13:23:05 UTC
I'm beginning to think that what happens here is that the registry/itemrepository somehow tries to write 2 different version formats to file, which leads to an open failure if there's a runtime version mismatch.
The reason I think that is that I see the timestamps change on both version files (and curiously this session is the only one where that happens).
```
> CD ~/.cache/kdevduchain/ ls -l -htr kdevelop-*/{version_*,"Persistent Declaration Table"}
[...]
-rw-rw-r-- 1 bertin bertin 0 Jul 22 15:43 kdevelop-{c241ebeb-91a8-4054-a7f4-ef33efe8fd99}/version_84083201
-rw-rw-r-- 1 bertin bertin 2.3M Jul 22 15:46 kdevelop-{c241ebeb-91a8-4054-a7f4-ef33efe8fd99}/Persistent Declaration Table
-rw-rw-r-- 1 bertin bertin 0 Jul 22 15:46 kdevelop-{c241ebeb-91a8-4054-a7f4-ef33efe8fd99}/version_84083457
```
It would seem that the older tag file came from the kdev-python plugin which I had NOT updated to 5.3.3 . It never occurred to me that this might be necessary, and I think users (even) less involved with KDevelop development than I will think of it even less.
Would it be an idea to let the plugin disable itself if it detects that the current DUChain version is not the same as the one it was built against?
Anyway, updating the plugin did NOT solve my crashing issue.
Edit: I meant "upgraded TO KF5 Frameworks 5.60.0", FROM 5.52.0 . I observe the same issue in the 5.3.3 app image, including the double version tag file: ``` > ~/Desktop/Downloads/KDevelop-5.3.3-x86_64.AppImage libEGL warning: DRI2: failed to open i965 (search paths /usr/lib64/dri) libEGL warning: DRI2: failed to open swrast (search paths /usr/lib64/dri) libEGL warning: DRI2: failed to open i965 (search paths /usr/lib64/dri) libEGL warning: DRI2: failed to open swrast (search paths /usr/lib64/dri) kdevelop.plugins.git: couldn't find the git root for QUrl("file:///opt/local/portia-site-ports") kdevelop.plugins.git: couldn't find the git root for QUrl("file:///opt/local/portia-site-ports") kdevelop.plugins.git: couldn't find the git root for QUrl("file:///opt/local/portia-site-ports") failed to open a repository /tmp/.mount_KDevelOgKjbS/AppRun: line 36: 28348 Aborted kdevelop $@ Exit 134 > ll -htr ~/.cache/kdevduchain/kdevelop-\{c241ebeb-91a8-4054-a7f4-ef33efe8fd99}/ total 4.6M 22642 33K drwxr-xr-x 33 bertin bertin 33 Jul 22 16:55 ../ 348217 512 -rw-rw-r-- 1 bertin bertin 0 Jul 22 16:56 version_84083201 347974 512 drwxrwxr-x 2 bertin bertin 4 Jul 22 16:57 topcontexts/ 348216 512 -rw-rw-r-- 1 bertin bertin 32 Jul 22 16:57 Persistent Declaration Table_dynamic 348215 201K -rw-rw-r-- 1 bertin bertin 2.4M Jul 22 16:57 Persistent Declaration Table 347971 4.5K -rw-rw-r-- 1 bertin bertin 328 Jul 22 16:57 Code Model_dynamic 347970 613K -rw-rw-r-- 1 bertin bertin 3.7M Jul 22 16:57 Code Model 348208 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 Use Map_dynamic 348207 8.5K -rw-rw-r-- 1 bertin bertin 2.0M Jul 22 16:57 Use Map 347835 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 Php Completion Code Model_dynamic 347834 33K -rw-rw-r-- 1 bertin bertin 2.1M Jul 22 16:57 Php Completion Code Model 347720 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 Definition Map_dynamic 347719 8.5K -rw-rw-r-- 1 bertin bertin 2.0M Jul 22 16:57 Definition Map 347833 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 String Index_dynamic 347832 657K -rw-rw-r-- 1 bertin bertin 3.5M Jul 22 16:57 String Index 348206 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 Importer Map_dynamic 348205 8.5K -rw-rw-r-- 1 bertin bertin 2.0M Jul 22 16:57 Importer Map 348204 512 -rw-rw-r-- 1 bertin bertin 4 Jul 22 16:57 Type Repository_dynamic 348203 121K -rw-rw-r-- 1 bertin bertin 2.2M Jul 22 16:57 Type Repository 348200 512 -rw-rw-r-- 1 bertin bertin 4 Jul 22 16:57 Qualified Identifier Repository_dynamic 348199 393K -rw-rw-r-- 1 bertin bertin 2.6M Jul 22 16:57 Qualified Identifier Repository 348202 512 -rw-rw-r-- 1 bertin bertin 4 Jul 22 16:57 Instantiation Information Repository_dynamic 348201 21K -rw-rw-r-- 1 bertin bertin 2.1M Jul 22 16:57 Instantiation Information Repository 348198 512 -rw-rw-r-- 1 bertin bertin 4 Jul 22 16:57 Identifier Repository_dynamic 348197 361K -rw-rw-r-- 1 bertin bertin 2.5M Jul 22 16:57 Identifier Repository 348214 512 -rw-rw-r-- 1 bertin bertin 4 Jul 22 16:57 file modification sets_dynamic 348213 21K -rw-rw-r-- 1 bertin bertin 2.1M Jul 22 16:57 file modification sets 348196 512 -rw-rw-r-- 1 bertin bertin 4 Jul 22 16:57 file modification repository_dynamic 348195 53K -rw-rw-r-- 1 bertin bertin 2.1M Jul 22 16:57 file modification repository 347831 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 Recursive Imports_dynamic 347830 25K -rw-rw-r-- 1 bertin bertin 2.1M Jul 22 16:57 Recursive Imports 348210 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 Environment Lists_dynamic 348209 37K -rw-rw-r-- 1 bertin bertin 2.1M Jul 22 16:57 Environment Lists 348212 512 -rw-rw-r-- 1 bertin bertin 8 Jul 22 16:57 Environment Information_dynamic 348211 45K -rw-rw-r-- 1 bertin bertin 2.1M Jul 22 16:57 Environment Information 348219 512 -rw-rw-r-- 1 bertin bertin 0 Jul 22 16:57 version_84083457 347839 512 -rw-rw-r-- 1 bertin bertin 20 Jul 22 16:57 parsing_environment_data 347838 512 -rw-rw-r-- 1 bertin bertin 46 Jul 22 16:57 Counters 348194 512 -rw-rw-r-- 1 bertin bertin 12 Jul 22 16:57 Comment Repository_dynamic 348193 2.0M -rw-rw-r-- 1 bertin bertin 8.8M Jul 22 16:57 Comment Repository 347840 512 -rw-rw-r-- 1 bertin bertin 0 Jul 22 16:57 available_top_context_indices 348192 8.5K drwxrwxr-x 3 bertin bertin 42 Jul 22 16:57 ./ ``` Created attachment 121676 [details]
workaround for the abort
It appears there is no hard need to abort but that instead you can keep running without side-effects.
Turns out this was a false alarm, it just took me way too long to get the idea to check who was using libKDevPlatformSerialisation. Sure enough I had a not-so-zombie KDevelop 5.3.2 process running which I thought I had quit before logging off (the 1st time after upgrading to 5.60.0). My issues started after logging in. Two things would probably have helped me think of this sooner: - using the hex version number in the version file, so I'd have seen an unexpected version_5030201 file. - storing the application PID in the file instead of keeping it empty. It's been a (potentially) interesting "experiment" though that has shown that the session can survive unexpected "failed to open registry" errors, i.e. that an immediate abort isn't required. Created attachment 121693 [details]
no abort and more informative version_XXX file
This implements the earlier workaround to prevent the abort(), and my idea to make the version_XXX file a bit more useful to understand the kind of issue I was confronted with. The number in the filename is stored in hex (so it becomes evident which KDevelop version created the file) and the file itself contains the application PIC.
Depending on feedback here I may clean this up where necessary and put it up for review on phab after the summer (and 5.4 release)
|