AgregoreWeb / agregore-browser

A minimal browser for the distributed web (Desktop version)
https://www.youtube.com/watch?v=TnYKvOQB0ts&list=PL7sG5SCUNyeYx8wnfMOUpsh7rM_g0w_cu&index=14
GNU Affero General Public License v3.0
741 stars 66 forks source link

trouble opening agregore after failed navigation; also after deleting `.config/agregore-browser` #163

Closed micahscopes closed 2 years ago

micahscopes commented 2 years ago

I tried making a torrent with Transmission and loading it by using the hash from transmission like this bittorrent://<hash>. After a while there was an error in the browser window (unfortunately I didn't grab it) and the browser crashed. When I tried opening it again I got:

Error occurred in handler for 'agregore-window-searchHistory': [Error: search is not defined]

I assumed agregore was trying to reopen the failed torrent URL, so I deleted ~/.config/agregore-browser and tried loading it up again.

This time I got:

Error loading saved windows Error: ENOENT: no such file or directory, open '/home/micah/.config/agregore-browser/lastOpened.json'
{ autoResize: false }
/home/micah/Programs/agregore-browser/node_modules/electron/dist/electron exited with signal SIGSEGV
RangerMauve commented 2 years ago

Not sure what's causing it to crash from the latest logs. 🤔 The error relating to lastOpened.json isn't actually an issue since it's just a warning when there's no lastSaved list present.

Do you have any other details of what's causing the SIGSEGV?

One aside, it doesn't look like two torrent clients on one machine are typically able to communicate with each other. You may need to get a second machine.

micahscopes commented 2 years ago

I'm not sure what's causing SIGSEGV. Here's the full output:

🐁 > npm run start                                                                               22-02-15 - 16:36:34

> agregore-browser@1.0.0-65 start
> electron .

[115454:0215/163635.799243:ERROR:gpu_init.cc(457)] Passthrough is not supported, GL is egl, ANGLE is 
[115454:0215/163635.803137:ERROR:sandbox_linux.cc(376)] InitializeSandbox() called with multiple threads in process gpu-process.
(node:115414) ProtocolDeprecateCallback: The callback argument of protocol module APIs is no longer needed.
(Use `electron --trace-warnings ...` to show where the warning was created)
(node:115414) ProtocolDeprecateCallback: The callback argument of protocol module APIs is no longer needed.
Loading extensions [
  'agregore-adblock',
  'agregore-history',
  'extension-agregore-render-gemini',
  'extension-agregore-render-markdown'
]
Loaded extension {
  manifest_version: 2,
  name: 'agregore-adblock',
  version: '1.0',
  description: "Agregore's ad blocking extension",
  permissions: [ 'webRequest', 'webRequestBlocking', '<all_urls>' ],
  background: { scripts: [ 'urls.js', 'adblock.js' ] },
  srcDirectory: '/home/micah/Programs/agregore-browser/app/extensions/agregore-adblock',
  extensionId: 'agregore-adblock'
}
Loaded extension {
  manifest_version: 2,
  name: 'agregore-history',
  version: '1.0',
  description: 'The history tracking functionality for the Agregore Browser',
  background: { page: 'background.html' },
  srcDirectory: '/home/micah/Programs/agregore-browser/app/extensions/agregore-history',
  extensionId: 'agregore-history'
}
Loaded extension {
  manifest_version: 1,
  name: 'agregore-gemini-render',
  version: '1.0',
  description: 'The gemini rendering functionality for the Agregore Browser',
  permissions: [ 'activeTab' ],
  content_scripts: [ { matches: [Array], js: [Array] } ],
  srcDirectory: '/home/micah/Programs/agregore-browser/app/extensions/extension-agregore-render-gemini',
  extensionId: 'extension-agregore-render-gemini'
}
Loaded extension {
  manifest_version: 1,
  name: 'agregore-md-render',
  version: '1.0',
  description: 'The markdown rendering functionality for the Agregore Browser',
  permissions: [ 'activeTab' ],
  content_scripts: [ { matches: [Array], js: [Array] } ],
  srcDirectory: '/home/micah/Programs/agregore-browser/app/extensions/extension-agregore-render-markdown',
  extensionId: 'extension-agregore-render-markdown'
}
Error loading saved windows Error: ENOENT: no such file or directory, open '/home/micah/.config/agregore-browser/lastOpened.json'
{ autoResize: false }
/home/micah/Programs/agregore-browser/node_modules/electron/dist/electron exited with signal SIGSEGV
micahscopes commented 2 years ago

(somehow running npm run debug actually seems to fix the problem for subsequent runs of npm run start, so I'm not sure how I'd get more info about that crash itself. You might be able to duplicate this by just deleting ~/.config/agregore-browser though)

RangerMauve commented 2 years ago

Weeeeeeeeeeird. SIGSEGV seems to be a "segfault" error, so it might be something within Chromium or Node.js that's causing issues. 🙃

Does deleting node_modules and installing with yarn change anything?

What's your CPU arch / OS version? Also which version of Electron do you have installed?

micahscopes commented 2 years ago

CPU: AMD64 OS: Linux 5.15.19 (Arch) Electron: 16.0.8 Node: 17.3.0

@RangerMauve are you able to reproduce this by moving or deleting ~/.config/agregore-browser?

I found specifically that the --trace-uncaught flag passed to electron is the one that actually enables startup.

So to reproduce:

  1. move or delete ~/.config/agregore-browser
  2. npx electron . gives a segfault, same for subsequent attempts
  3. npx electron . --trace-segfault results in a successful launch, and subsequent runs of npx electron . are now also successful
RangerMauve commented 2 years ago

If you're running electron manually it could be that the native libraries are being compiled. I think just the electron versions are really important because native libraries get rebuilt for the version in package.json. https://github.com/AgregoreWeb/agregore-browser/blob/master/package.json#L14

RangerMauve commented 2 years ago

I'm guessing that was the main thing but feel free to reopen if the electron version built inside package.json causes the same issue.