ChrisNZL / Fauxbar

An alternative to Chrome's Omnibox.
https://chrome.google.com/webstore/detail/fauxbar/hibkhcnpkakjniplpfblaoikiggkopka
MIT License
90 stars 13 forks source link

Crashing / Corruption in Chrome 76 #50

Closed lins05 closed 4 years ago

lins05 commented 5 years ago

First of all, thanks for this amazing extension.

I'm using chrome beta, and after last chrome upgrade I find once a while fauxbar need to be fixed in the about:extension page. It would then work again for a while and broke again.

Here is my chrome version:

Version 76.0.3809.36 (Official Build) beta (64-bit)
ChrisNZL commented 5 years ago

Hey lins05, thanks for your kind words.

I'll try using Chrome Beta 76 today to see if I can reproduce any issues, but I haven't had any luck yet.

If you open:

chrome-extension://hibkhcnpkakjniplpfblaoikiggkopka/html/fauxbar.errorlog.html

are there any errors?

Additionally, if you go to:

  1. chrome://extensions/
  2. Enable "Developer mode" in the top-right corner
  3. Under Fauxbar 1.8.1, click the "Inspect views background page" link

Any different errors there? (don't worry about any Unchecked runtime.lastError: No tab with id: XXX errors)

lins05 commented 5 years ago

Hey @ChrisNZL , I tried to grab the error logs using your instructions, but the thing is each time the moment I realize the extension crashes, it became disabled/gray in the extensions page.

I'll see if I can get the log by checking that page now and then.

ChrisNZL commented 5 years ago

Sounds like a tough one to get logs for.

Fauxbar has checks in place to see if its database is intact upon start.

If the extension is fully crashing and Fauxbar's WebSQL/SQLite database is getting corrupted, sounds semi related to Fauxbar issue #48 where some sort of Chrome database file accessing/locking was recently going awry in Chrome 75.

Ultimately, this is probably another sign for me to replace WebSQL (issue #49).

theSloopJohnB commented 5 years ago

@lins05 - Did you have any luck resolving this issue? Now that Chrome 76 is the default, I'm running into this multiple times a day as well :(

@ChrisNZL - Totally understand if this can't be fixed right away. I love the extension, and it makes me realize how helpful it is when I have to go back to the default behavior.

thischrisoliver commented 5 years ago

I'm also having issues with Chrome 76. Fauxbar kept crashing, and in chrome://extensions/, Chrome said Fauxbar was corrupted and needed to be repaired. Clicking the Repair button made Fauxbar work again for a little while, but I lost all my settings, and it would quickly crash again. I ended up restoring Chrome 75 from a backup, and Fauxbar seems to be working fine again.

ChrisNZL commented 5 years ago

This is gonna be a tough one. I still haven't seen this myself on two different Windows installations, so can't properly debug 😬

If Chrome 75 is still working, perhaps sticking with that version as a temporary solution could work if Fauxbar is a must-have. Not sure how to prevent Chrome from auto-updating though.

As mentioned previously, this is likely a WebSQL async regression with Chrome, and tackling issue #49 (Replace WebSQL) is probably still the way to go, but is not a simple task.

thischrisoliver commented 5 years ago

I don't know if it makes a difference, but I'm on a Mac.

Talaaya commented 5 years ago

This sounds like the same problem I'm having. It started happening very recently, after Chrome crashed and stopped working entirely, and I had to reinstall it. The crash log has these types of errors for me:

Unchecked runtime.lastError: No tab with id: 500. Context _generated_background_page.html Stack Trace _generated_background_page.html:0 (anonymous function)

I can't get it to repro consistently on a particular action, it just seems to stop working sometimes after I've messed with settings (especially search engine settings) and then open a new tab.

Chrome Version 76.0.3809.100 (Official Build) (64-bit)

e14mattc commented 5 years ago

Had this twice now since upgrading to Chrome 76. Repaired it earlier this week.. then suddenly it's corrupted again today, part way through the day (no reboots.. just working one minute, corrupt the next) :(

pteyssier commented 5 years ago

@ChrisNZL Have you contacted google support about it? I don't think it's a problem of corruption. I'm using mac also, and every couple of days, the same error appear, but i don't need to rebuild the index. Luckily, using "Repair" button does not work for me(for a known reason not important to mention here) so I have to go on https://chrome.google.com/webstore/detail/fauxbar/hibkhcnpkakjniplpfblaoikiggkopka and click "enable this item", which allow me to use again your extension without losing any configuration ( @thischrisoliver if this can help you ).

So i suppose some security mechanism in Chrome is faulty and force-disable your extension on mac.

ChrisNZL commented 5 years ago

Regarding:

Unchecked runtime.lastError: No tab with id: 500.

The No tab with id error in the background console has been around for a long time (way before these crashing issues came about). I believe I narrowed it down where, this error gets logged when Fauxbar attempts to do something with a Chrome tab, but the tab has been closed. Due to the asynchronous nature of Chrome's API calls, sometimes a tab closes before a call gets finished (especially when there's calls within calls). Probably could wrap various calls within a try/catch, but it just seems like a non-issue, just a warning rather than a hard error causing problems.


Regarding the crashing/corruption, it really sounds like a file-access issue with macOS.

The weird thing with WebSQL here, is that everything is transaction-based, so if a transaction fails, in theory the transaction should never get committed, and the database should remain intact.

But if the database is getting flat-out corrupted, this is something happening outside of Fauxbar. A regression with Chromium I'd say. Fauxbar does not access your filesystem directly; it has to use Chrome's APIs.

@pteyssier sounds like your Chrome is recognising a crash and shutting Fauxbar down before its WebSQL database file becomes corrupted for whatever reason.

I haven't contacted Google about this, as I would likely need to create a small reproducible test extension to submit, and I just haven't had the time, energy, nor motivation to do so. Would rather work on switching to IndexedDB instead. But with recent chronic health issues taking a toll on my day-to-day life, and my attempts to continue to pursue commercial endeavours as best I can to support my family without winding up on a disability benefit, Fauxbar - which is just a hobby project - is not a high priority in my life right now.

e14mattc commented 5 years ago

FYI, I'm on a Windows 7 PC, so it's not just a macOS issue.

ChrisNZL commented 5 years ago

Ah dang. Windows 10 is my main computer. I don't have Windows 7 installed anywhere at the moment. I don't use macOS much in my day-to-day tasks either.

Just thinking - if you'd be willing to try... On https://github.com/ChrisNZL/Fauxbar/releases, try downloading Fauxbar_1.8.0.zip, extract to a folder, go to chrome://extensions, disable Fauxbar, enable developer mode, then click the Load unpacked button, and choose the extracted folder.

In the Fauxbar 1.8.1 commit, I wrote:

Fixes issue #48 - common.js' openDb method now uses the background page's window.db var for all tabs.

The common.js file change can be seen here. Basically making the extension always use the background page's database connection, rather than establishing new connections all the time.

But perhaps this change is an issue. Yet it was all an attempt to fix issue #48.

I've made a Dropbox folder containing older versions: Fauxbar versions - public archive Maybe try the Fauxbar 1.7.3.zip version to see if things still crash or not?


Thinking out loud, I'm also wondering if having tabs set window.db to the getBackgroundPage().db variable is triggering some kind of caching issue, like maybe if the background page is getting reset or refreshed, and there's some kind of out-of-date var mismatch happening at times.

But if Chrome 75 introduced the inability to have multiple tabs access their window.db var via the openDatabase method due to concurrency/async issues with WebSQL (a regression with Chrome), and Chrome 76 is further not liking async access...

When tackling issue #48, I did do a multi-file change at one point, but then condensed the change into common.js' openDb method, but maybe trying this again would be prudent: https://github.com/ChrisNZL/Fauxbar/issues/48#issuecomment-501660743

I've replaced all instances of window.db with chrome.extension.getBackgroundPage().db and it seems to have resolved the locking errors.

So maybe I should make a test version of this again to see if it helps. Let me see if I can get it going.

e14mattc commented 5 years ago

Happy to try whatever fixes you want. I saw there's a 1.8.1 version and 1.8.0.. which would you like me to download & run?

ChrisNZL commented 5 years ago

@e14mattc Please try the 1.8.0, but if that crashes, try the 1.7.3.

e14mattc commented 5 years ago

1.8.0 isn't happy.. it pops up this each time I load a new tab. Rebuilding the d/b doesn't make any difference.

image

1.7.3 gives the same error.

ChrisNZL commented 5 years ago

Thanks for trying both. So 1.8.1’s change of accessing the background page’s database connection is definitely a requirement still.

I will be keen to try the getBackgroundPage replace-all next. I’m away on a business trip for a few days, so might be a while, but I’ll try to get a test version available up when possible.

On Tue, 3 Sep 2019 at 9:22 PM, Matt Collinge notifications@github.com wrote:

1.8.0 isn't happy.. it pops up this each time I load a new tab. Rebuilding the d/b doesn't make any difference.

[image: image] https://user-images.githubusercontent.com/9819307/64158416-55845a00-ce30-11e9-9f03-485ae2b19173.png

1.7.3 gives the same error.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ChrisNZL/Fauxbar/issues/50?email_source=notifications&email_token=AACER3UPVPQQFYLQSIB4BNLQHYUETA5CNFSM4H2WYJYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5XSQIA#issuecomment-527378464, or mute the thread https://github.com/notifications/unsubscribe-auth/AACER3VXY4GHAAQKRYNVDBLQHYUETANCNFSM4H2WYJYA .

e14mattc commented 4 years ago

Hmm, since upgrading to Chrome 78 & adding my tiles back in I've not had this problem with v1.8.1. Crossing my fingers...!! :crossed_fingers:

theSloopJohnB commented 4 years ago

Seems to be working for me too. I've been using it for 2 days without an issue, usually by now it has become corrupted.

On Mon, Nov 4, 2019 at 6:12 AM Matt Collinge notifications@github.com wrote:

Hmm, since upgrading to Chrome 78 & adding my tiles back in I've not had this problem with v1.8.1. Crossing my fingers...!! 🤞

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ChrisNZL/Fauxbar/issues/50?email_source=notifications&email_token=AGN2PWND4WI7GBU7B27QQ7LQR77QTA5CNFSM4H2WYJYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC64SYQ#issuecomment-549308770, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGN2PWL2T7ABUJWNUF2QLBLQR77QTANCNFSM4H2WYJYA .

lins05 commented 4 years ago

This problem has not happened during the last two months. Thanks again @ChrisNZL ! Closing.