Keeweb: Uncaught Exception: Error: EEXIST: file already exists, mkdir

Created on 3 Mar 2020  路  30Comments  路  Source: keeweb/keeweb

Describe the bug

After upgrading Electron to version 8.0.3 there is error at the second start and remaining process.

To Reproduce

Steps to reproduce the behavior:

  1. Install KeeWeb (1.12.3, the latest for now) on Arch Linux.
  2. Install Electron 8.0.3 (the latest for now) on Arch Linux.
  3. Start KeeWeb.
  4. Close KeeWeb (there are no remaining processes).
  5. Start KeeWeb again.

Expected behavior

No errors.

Screenshots

image

Environment

KeeWeb v1.12.3 (9b07bbd5, 2019-11-20)
Environment: electron v8.0.2
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) KeeWeb/1.12.3 Chrome/80.0.3987.86 Electron/8.0.2 Safari/537.36

Kdbx File

Personal, I don't think it's related.

Logs

I don't think I can get them, because the fail is before start.

Additional info

Original issue: https://github.com/electron/electron/issues/22497

bug desktop linux

All 30 comments

This seems to be some problem that showed itself with electron 8.0.3. i can confirm this behaviour as explained above.

however, i tried to downgrade electron to a low 7er release, but the behaviour did not go away. however, i only saw that error screen once. after that, keeweb wouldn't even start.
when i run it from commandline now, i get this, but i doubt it is related:

(electron) The default value of app.allowRendererProcessReuse is deprecated, it is currently "false".  It will change to be "true" in Electron 9.  For more information please check https://github.com/electron/electron/issues/18397

however, i tried to downgrade electron to a low 7er release, but the behaviour did not go away.

KeeWeb works for me with downgrading Electron to version 8.0.2.

however, i only saw that error screen once. after that, keeweb wouldn't even start.

Yes, there is remaining process. You can terminate it.

yeah, i just realized that after i had written my comment :D

i did that, and again, i can confirm your report of the error. this seems to be rather an inconvenience rather than a problem, since as far as i can tell it does not result in erroneous behavior of the program, right?

i did that, and again, i can confirm your report of the error. this seems to be rather an inconvenience rather than a problem, since as far as i can tell it does not result in erroneous behavior of the program, right?

KeeWeb crashes at every second start for me. Like:

  • Normal start, close
  • Crash at start, remaining process

    • Killing process myself, normal start, close

    • Crash at start again, remaining process

    • etc.

yes i can confirm this as well.
and looking at the temp dir in ~/.config/KeeWeb there is definately something weird going on. it seems i can prevent the crashing from happening if i keep this directory empty while the process runs.

so i guess just like suggested in the thread on the electron repo, there's something fishy in the way keeweb does tempfile management in conjunction with electron 8.0.3

Hi! How did you install keeweb with electron 8? And another question, why?
Not an issue, upgrading a package to a new major version is expected to have effects like this, so I'll look into it in the next version of keeweb.

@antelle when the next version will release? Arch Linux uses electron 8.0.3 and it doesn't provide old version. Without next version fix it, I think a lot of Arch Linux users can't use keeweb

Ah, so Electron 7 isn't compatible with the latest Arch, right? I thought the OP just wanted to try a new electron. This answers the question "why". I guess then it makes sense to release an update with just a new electron version and this issue fixed.

Yep, just a regular keeweb AUR package for Arch Linux: https://aur.archlinux.org/packages/keeweb/

It has electron dependency: https://www.archlinux.org/packages/?q=electron

And there is no electron7 package.

Yep, just a regular keeweb AUR package for Arch Linux: https://aur.archlinux.org/packages/keeweb/

This is a really bad idea to use system-level/rolling @electron version, it's literally a footgun case. The app designed to be using the dependencies defined in https://github.com/keeweb/keeweb/blob/master/package.json especially if those are runtime dependencies like @electron.

I guess then it makes sense to release an update with just a new electron version and this issue fixed.

By the way upgrading Electron to v8 will break the tray icons functionality for some Linux users, see https://github.com/electron/electron/issues/21445 for details.

Yep, just a regular keeweb AUR package for Arch Linux: https://aur.archlinux.org/packages/keeweb/

This is a really bad idea to use system-level/rolling @electron version, it's literally a footgun case. The app designed to be using the dependencies defined in https://github.com/keeweb/keeweb/blob/master/package.json especially if those are runtime dependencies like @electron.

I understand, but there is no electron7 for Arch Linux, so I can't suggest something to package maintainer. I guess, we can use binary, for example https://aur.archlinux.org/packages/keeweb-desktop-bin/

I guess then it makes sense to release an update with just a new electron version and this issue fixed.

By the way upgrading Electron to v8 will break the tray icons functionality for some Linux users, see electron/electron#21445 for details.

This issue is fixed and backported to version 8, as I see. I'm not sure for which version especially.

This issue is fixed and backported to version 8, as I see. I'm not sure for which version especially.

It's not fixed. The tray icons behavior change comes from @chromium, noted here. The Linux system has to support Status Notifier standard or tray icon won't be displayed. I used to update status in this message.

I guess, we can use binary, for example https://aur.archlinux.org/packages/keeweb-desktop-bin/

:+1:

This issue is fixed and backported to version 8, as I see. I'm not sure for which version especially.

It's not fixed. The tray icons behavior change comes from @chromium, noted here. The Linux system has to support Status Notifier standard or tray icon won't be displayed. I used to update status in this message.

OK, sorry, thank you very much.

electron isn't small and if every electron app has a copy of this, it will take a lot of disk spaces. Besides, Arch Linux recommend reusing system package as a dependency.

@Sherlock-Holo, @electron is not a library but a runtime. There is no guarantee that the app designed/tested/compiled on specific version of @electron will be working the same way with another version. It's not event about sticking to major version since sometimes @electron breaks and fixes important things in the minor releases. So it's an absolute terrible idea to use @electron as an rolling system package.

Electron is a framework

-- https://www.electronjs.org/

Would you deploy your Ruby on Rails, Meteor, Ghost, etc. application with the latest release each time?

@HarlemSquirrel, proper letter-writing won't change reality. I admit that there always will be dreamers who believe that running keeweb on Electron version other than the app was designed/tested/compiled on serves a good job for them.

this 'discussion' should probably be moved to the aur git repo, rather than preaching to the choir here.
it is indeed conceivable that the dependency should included a pinned version, possibly with an optimistic or pessimistic bias towards bugfix and minor versions. but i'm not sure if this is supported in arch's rolling release system.

i certainly do not believe that this issue warrants any more discussion here, other than possible confirming that the ^-operator in package.json for the electron dependency is in that sense strict enough / helping? but that is just for clarification...

I gave it a quick test, looks like after the fix everything is working on 8.1, so it should be possible to upgrade electron. @AlexWayfer would you be able to test it before making a release?

I rebuilt with electron 8.1 and so far so good. I'm using Wayland so can't test the auto-type feature.

I gave it a quick test, looks like after the fix everything is working on 8.1, so it should be possible to upgrade electron. @AlexWayfer would you be able to test it before making a release?

Yep, it works, thank you. #1359 left for me.

I guess, this issue can be closed. Resolving by updating Electron to 8.1.0.

Now the issue's behavior changed from "every second launch (after killing process)" changed to "only first launch after boot (and we should to terminate process manually)".

Electron 8.1.1. I'll switch to beta of KeeWeb.

Reproducible without a reboot, but with enabling beta-mode and restarting (exit from beta-mode).

Beta won't help here because this part is not changed in beta. This is already fixed in the next release.

Beta won't help here because this part is not changed in beta.

Just to clarify: not in beta, but after enabling beta and restarting app (to disable beta), only then the same error like after system boot.

I confirm it fixed, thanks.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

adatum picture adatum  路  34Comments

elproducto picture elproducto  路  39Comments

molikuner picture molikuner  路  32Comments

Aneyrin picture Aneyrin  路  28Comments

eligrey picture eligrey  路  29Comments