piroor / treestyletab

Tree Style Tab, Show tabs like a tree.
http://piro.sakura.ne.jp/xul/treestyletab/
Other
3.48k stars 279 forks source link

[Bug] TST stuck loading indefinitely #3516

Closed manyfew closed 4 months ago

manyfew commented 6 months ago

Abstract

When I launch Firefox, Tree Style Tabs never finishes loading and tabs never disply. The loading progress bar appears to be stuck at one position even after waiting several minutes.

Steps to reproduce

  1. Start Firefox, install TST
  2. Open hundreds of tabs (may not be necessary but I have hundreds of tabs open)
  3. Close Firefox
  4. Re-open Firefox and wait for TST to load.

Expected result

Tabs load as usual.

Actual result

Progress bar stuck at about 30%, progress isn't made.

Environment

Remarks

I notice the current latest version on Github is 4.0.8, however, I had 4.0.10 installed which is the version which is the one available at https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/

I was able to load my tabs by downgrading TST to the latest 3.xx version (3.9.22). If I upgrade again to any 4.xx release the problem comes back.

Thank you!

piroor commented 6 months ago

Here is similar issue #3496: it was triggered by Firefox Multi-Account Containers or Session Manager. Do you use them or any other addons? If you use one or more addons, could you narrow down the list of enabled addons, to minimize the list of addons required to reproduce the problem?

zoll commented 6 months ago

I got same issue, in the console can see managed storage is not provided

Firefox version: 124.0.2 64 bit Plugin version: 4.0.10

maybe this can help: obraz

czert commented 6 months ago

I'm having the same issue on developer edition 125.0b7. Except that after some time, the panel seems to finish loading and flashes what seems to be the rendered tab tree for a frame or two. Too quick to be sure, though. Then it starts loading again.

If there's more info I can provide, let me know.

piroor commented 6 months ago

Anyway please confirm that the problem appears only with TST, by disabling other addons and resetting all TST options. (Before resetting I recommend you to export current settings: TST options => Development => All Configs => Export.) If the problem goes away with initial settings and without other addons, it may be a conflict with something addon or triggered by some options you modified.

sizvix commented 6 months ago

configs-treestyletab@piro.sakura.ne.jp.json On 126.0a1 (2024-04-03) (64 bits) and yes, I use Firefox built-in Multi-Account Container . :)

piroor commented 6 months ago

@sizvix Could you paste configs of Multi-Account Containers too? I've prepare TST and MAC, imported your configs to Firefox, and set Firefox to restore previous session automatically. Sadly I couldn't reproduce the problem, with 10 tabs containing three container tabs, MAC configured to open some websites in non-default container tabs.

czert commented 6 months ago

I tried installing in an empty profile a it worked. I then tried reinstalling TST in my profile and the issue went away. Which is good news for me and possibly a way for others to fix their problems, but now I can't reproduce the issue anymore to help find out what brought it on.

piroor commented 6 months ago

The case #3496 was triggered from the order of initialization processes of addons. It looks the reason why reinstalling TST solved @czert's case.

TST provides ability to output logs around its initialization. Debug logs on stuck cases may help debugging. Here are steps to collect information:

  1. Reproduce the problem.
  2. Open debugger for TST. (instructions: https://github.com/piroor/treestyletab/wiki/How-to-inspect-tree-of-tabs#how-to-start-debugger-for-tree-style-tab )
  3. Collect logs currently reported in the "Console" tab.
  4. Switch the target document to the background page. (instructions: https://github.com/piroor/treestyletab/wiki/How-to-inspect-tree-of-tabs#how-to-inspect-the-background-page-master-process )
  5. Copy and paste a script: gMetricsData.toString()
  6. Run it by hitting the Enter key.
  7. Collect reported message.
  8. Switch the target document to the sidebar page. (instructions: https://github.com/piroor/treestyletab/wiki/How-to-inspect-tree-of-tabs#how-to-inspect-the-sidebar )
  9. Copy and paste a script: gMetricsData.toString()
  10. Run it by hitting the Enter key.
  11. Collect reported message.
piroor commented 6 months ago

On success case, reported logs should be like following:

"total 2383 msec
248: index: Loaded
53: init: start
993: (async) waitUntilCompletelyRestored: opening tabs 
1009: (async) waitUntilCompletelyRestored: existing tabs 
1052: (async) init: waiting for waitUntilCompletelyRestored, ContextualIdentities.init and configs.$loaded
1054: init: prepare
1: init: Migration.migrateConfigs
69: (async) init: getting all tabs across windows
155: restoreWindowFromEffectiveWindowCache: start
3: restoreWindowFromEffectiveWindowCache: start
285: (async) restoreWindowFromEffectiveWindowCache: window cache
303: restoreWindowFromEffectiveWindowCache: validity check: start
0: restoreWindowFromEffectiveWindowCache: validity check: signature passed.
0: restoreWindowFromEffectiveWindowCache: validity check: matching actual signature of got cache
2: restoreWindowFromEffectiveWindowCache: validity check: actual signature passed.
213: (async) restoreWindowFromEffectiveWindowCache: permanentStatus
213: restoreTabsFromCacheInternal: start
0: fixupTabsRestoredFromCache: start
1: fixupTabsRestoredFromCache: step 1 done.
183: fixupTabsRestoredFromCache: step 2 done.
5: (async) rebuildAll: fixupTabsRestoredFromCache
10: (async) restoreWindowFromEffectiveWindowCache: restoreTabsFromCache
10: restoreWindowFromEffectiveWindowCache: window 1 succeeded
714: (async) rebuildAll: restore tabs in window 1 from cache
800: (async) rebuildAll: tabs in window 1
715: (async) restoreWindowFromEffectiveWindowCache: window cache
3: restoreWindowFromEffectiveWindowCache: validity check: start
0: restoreWindowFromEffectiveWindowCache: validity check: signature passed.
0: restoreWindowFromEffectiveWindowCache: validity check: matching actual signature of got cache
0: restoreWindowFromEffectiveWindowCache: validity check: actual signature passed.
88: (async) restoreWindowFromEffectiveWindowCache: permanentStatus
88: restoreTabsFromCacheInternal: start
0: fixupTabsRestoredFromCache: start
0: fixupTabsRestoredFromCache: step 1 done.
1: fixupTabsRestoredFromCache: step 2 done.
0: (async) rebuildAll: fixupTabsRestoredFromCache
0: (async) restoreWindowFromEffectiveWindowCache: restoreTabsFromCache
0: restoreWindowFromEffectiveWindowCache: window 28 succeeded
805: (async) rebuildAll: restore tabs in window 28 from cache
806: (async) rebuildAll: tabs in window 28
805: (async) init: rebuildAll
1: loadTreeStructure: start
0: (async) loadTreeStructure: restoration for windows
0: (async) init: TreeStructure.loadTreeStructure
1: init: started listening
63: init: started initializing of context menu
106: (async) init: exporting tabs to sidebars
212: (async) init: initializing API for other addons"
"total 1199 msec
16: Loaded
147: init: start
56: (async) getting window
18: (async) tracking all native tabs
77: (async) getting native tabs
84: browser.tabs.query finish, configs are loaded.
1: (async) promisedAllTabsTracked
279: (async) importTabsFromBackground: kCOMMAND_PING_TO_BACKGROUND
278: (async) importTabsFromBackground()
282: rebuildAll: start
26: (async) parallel initialization: Size
4: (async) parallel initialization: TabContextMenu
4: (async) parallel initialization: contextual identities
460: (async) API for other addons
476: rebuildAll: end (from scratch)
388: (async) parallel initialization: main: rebuildAll
2: mouse-event-listener: Sidebar.onBuilt: apply configs
519: (async) parallel initialization: main
127: (async) parallel initialization: post process: main
21: (async) parallel initialization: post process: Scroll.init
21: (async) parallel initialization: post process
192: init: end" 
sizvix commented 6 months ago

reinstalling TST solved @czert's case.

Ok , it works with uninstall TST and then reinstall

manyfew commented 6 months ago

Anyway please confirm that the problem appears only with TST, by disabling other addons and resetting all TST options. (Before resetting I recommend you to export current settings: TST options => Development => All Configs => Export.) If the problem goes away with initial settings and without other addons, it may be a conflict with something addon or triggered by some options you modified.

Hi sorry for the late reply. I tried disabling all add-ons except TST and the problem still happened. I'm currently running the latest 3.9.22 version of TST as the problem doesn't see to happen there.

manyfew commented 6 months ago

I tried installing in an empty profile a it worked. I then tried reinstalling TST in my profile and the issue went away. Which is good news for me and possibly a way for others to fix their problems, but now I can't reproduce the issue anymore to help find out what brought it on.

Sorry for the noob question but if I do that will I lose my current tab tree structure?

czert commented 6 months ago

@manyfew no, you won't.

piroor commented 6 months ago

Hi sorry for the late reply. I tried disabling all add-ons except TST and the problem still happened. I'm currently running the latest 3.9.22 version of TST as the problem doesn't see to happen there.

Thanks. On your case something unexpected trouble looks happened. Could you collect detailed logs on the initialization process? https://github.com/piroor/treestyletab/issues/3516#issuecomment-2036510469

RoiArthurB commented 5 months ago

Uninstalling and reinstalling this add-on did fix this issue for me too.

TST : 4.0.14 Firefox : 125.0.1

manyfew commented 5 months ago

Uninstalling and reinstalling this add-on did fix this issue for me too.

TST : 4.0.14 Firefox : 125.0.1

This should be the next thing I will try. Right now I have too much stuff in my hands and I can't afford downtime so I'll stick with v3.x for a few more days. I have set a reminder in my calendar to attempt the uninstall-reinstall procedure in a few days when I have more free time in case something breaks.

spjakob commented 5 months ago

I can confirm that I have (had) the exact same issue. Reinstalling TST did NOT help, but after I disabled tab session manager addon, TST finally finished loading again.

piroor commented 5 months ago

@spjakob Could you share options of TST and tab session manager, to reproduce the problem on my environment?

manyfew commented 5 months ago

In the end I backed up my Firefox directory and proceeded to delete a bunch of junk folders in it. After that, the latest version of TST loads fine, although I will mention that, while searching for a solution a fellow redditor brought to my attention a similar add-on called Sidebery which I decided to check out and damn that thing is good. I fell in love with it almost immediately, so much so that I have stopped using TST and now I'm using Sidebery. I appreciate the hard work behind TST and I encourage the developer to take a look at Sidebery for ideas because it is very good.

silverwings15 commented 5 months ago

@manyfew as a long term user of TST and recent user of Sidebery, I feel exactly the same! similar to you, i share deep appreciation and gratitude for piroor and others' efforts, and i'll always be fond of TST, the undisputed best vertical tab extension since i started using it circa 2012 or 2013. but the latest Sidebery v5 is so good (managing to be fast, responsive and yet extremely feature packed), that it has actually displaced TST for me. very impressive, considering i tried v4 some years ago and decided it couldn't hold a candle to TST back then.

piroor commented 5 months ago

Better performance is always important, but "delay" and/or "fragility" are sadly unavoidable for some features. For example, TST has an option specifying behavior for newly opened / restored / duplicated tabs, but we need to wait for the next tick (it introduces a delay) to know a tab's context: newly opened, duplicated or restored. This delay introduces conflict with some other addons also, because other addons can handle new tabs and do something while TST is waiting for the next tick.

Recently I kicked around solving this kind delay, but I couldn't find out better solution to keep both stability and speed. If I prefer the speed, you'll see odd behavior around such kind tabs: they will be treated as a tab opened from regular link in a tab at first, and immediately moved and reattached to another tab as its actual context detected with a delay. Reducing this kind "odd" behaviors is the reason why current TST chose "stable but slow" way. Most of other known "delay" and/or "fragility" of TST are also from similar reasons. Super developer possibly can find out more better way, but sadly, at least I couldn't do that.

I agree Sidebery is good alternative, if you don't need TST specific features like this and Sidebery fully covers your use case.

piroor commented 5 months ago

Anyway here is an issue tracker of the TST project aiming to fix bugs of TST. I really need information to investigate the situation happening the problem: logs, detailed steps/conditions to reproduce the problem, and so on.

whoney2 commented 5 months ago

I have found that this problem occurs when I open any session with the checkbox "Support tree-type tabs" in the Tab Session Manager. This bug happens sometimes, not every time. If I uncheck the box, the bug does not occur. The bug probably occurs in version 4.00 or later, but it works fine in 3.9.22.

piroor commented 5 months ago

To Tab Session Manager users including @whoney2: could you upload exported settings of TSM and TST? I'm trying to reproduce the problem with a combination of TST and TSM with clean profile but I couldn't, so it may depends on some options. Providing exported session file to reproduce the problem will help me more.

whoney2 commented 5 months ago

I will upload the TSM and TST configuration files and the sessions that are prone to bugs in my environment. I exported TST after setting it to the buggy state 4.0.13. The symptom-prone session has several child tabs and seems to have about 6 tabs or more.Even so, sometimes bugs appear and sometimes they do not. Sessions with no hierarchy (no child tabs) do not seem to have the bug. Firefox version is 115.10ESR.

ご連絡ありがとうございます。 TSMとTSTの設定ファイルと、私の環境でバグの出やすいセッションをアップロードします。 TSTはバグのでる状態の4.0.13にしてからエクスポートしました。 症状の出やすいセッションはいくつかの子タブがあり、6タブ程度以上あるようです。それでもバグはでるときとでないときがあります。 階層のない(子タブのない)セッションはバグはでないようです。 Firefoxのバージョンは115.10ESRです。 TabSessionManager_Settings.zip

whoney2 commented 5 months ago

I also tried importing the uploaded configuration file with a clean profile. It is reproducible. I would be happy to find if it is an options issue.

piroor commented 5 months ago

Thanks @whoney2 ! I've successfully reproduced the problem, and realized that the initialization failure was triggered by tabs opened while initialization of the sidebar panel. The commit c546e73 should fix it.

github-actions[bot] commented 4 months ago

This issue has been closed due to no response within 14 days after labeled as "maybe fixed", 7 days after last reopened, and 7 days after last commented.