nicotine-plus / nicotine-plus

Graphical client for the Soulseek peer-to-peer network
https://nicotine-plus.org
GNU General Public License v3.0
1.75k stars 134 forks source link

Failure to launch 3.3.0 on Mac #2852

Closed thep50 closed 9 months ago

thep50 commented 9 months ago

Nicotine+ version: 3.3.0 Operating System/Distribution: macOS Monterey 12.7.3

Describe the bug

After installing and opening version 3.3.0, the GUI doesn't launch for me. After running the app from my Applications folder, the icon on the dock bounces for longer than usual - about 2 minutes - after which it stops bouncing, but no window opens even after leaving it like this for 10 minutes. Also, it doesn't show a dot below the icon. When right clicking the icon after 10 minutes, it says 'application not responding'. I eventually have to force close.

Additional context

I've tried repeating the process a few times, and have tried the unstable version 3.3.1.dev1 with the same results. Reinstalling version 3.2.9 has it running again normally.

slook commented 9 months ago

Is there any log output when you run the nicotine command from the Terminal?

thep50 commented 9 months ago

What command is that? I'm not overly familiar with terminal commands.

slook commented 9 months ago

nicotine

thep50 commented 9 months ago

Sorry, should have said I tried entering just that and it said command not found.

slook commented 9 months ago

Okay I see. I guess the executable is not in the environment path. Sorry I am not familiar with your platform. On linux to navigate to where it coud be located in the "/usr/bin" folder, so the cd command to change directory to it would be:

cd /usr/bin
nicotine

But on your platform it is probably somewhere else. Maybe you can use Spotlight search to establish the program install location, or perhaps ask another macOS user how to launch Nicotine+ from the Terminal.

Without some sort of debug error information its going to be really difficult to investigate the cause of this bug.

thep50 commented 9 months ago

Ok, I was able to use open -a nicotine+. It still had the same results as before but didn't show any log output.

mathiascode commented 9 months ago

On macOS, you have to do the following:

thep50 commented 9 months ago

On macOS, you have to do the following:

Ok, thanks for that. When I do that, I get this log:

/Applications/Nicotine+.app/Contents/MacOS/Nicotine+ ; exit; [user]@[netbios name] ~ % /Applications/Nicotine+.app/Contents/MacOS/Nicotine+ ; exit; [2024-02-03 11:43:56] [Misc] Using configuration: /Users/[user]/.config/nicotine/config [2024-02-03 11:43:56] Loading Python 3.11.6 [2024-02-03 11:43:56] [Misc] Using Python executable: /Applications/Nicotine+.app/Contents/MacOS/Nicotine+ [2024-02-03 11:43:56] [Misc] Using Nicotine+ executable: /Applications/Nicotine+.app/Contents/MacOS/lib/pynicotine [2024-02-03 11:43:56] Loading Nicotine+ 3.3.0

And it's been hanging there for 15 minutes.

mathiascode commented 9 months ago

Could you back up your config file somewhere (it's in HOME/.config/nicotine/config), remove both the config and config.old files, and see if the issue still happens?

thep50 commented 9 months ago

Could you back up your config file somewhere (it's in HOME/.config/nicotine/config), remove both the config and config.old files, and see if the issue still happens?

Ok tried that and the issue still happens.

hash000000 commented 9 months ago

I've got issues too. The app launches but it crashes right away. Here's the log:

Nicotine+ Version: 3.3.0
GTK Version: 4.12.5
Python Version: 3.11.7 (darwin)

Type: <class 'BufferError'>
Value: Existing exports of data: object cannot be re-sized
Traceback:   File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/gtkgui/application.py", line 848, in _raise_exception
  File "/opt/homebrew/Cellar/python@3.11/3.11.7/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 2685, in run
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 2456, in _process_ready_sockets
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 2411, in _process_ready_input_socket
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 2467, in _process_conn_incoming_messages
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 1307, in _process_server_input
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 1518, in _send_message_to_server
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 2539, in _process_outgoing_message
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 2301, in _process_internal_messages
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 1479, in _server_disconnect
  File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/slskproto.py", line 937, in _close_connection

My knowledge of mac os isn't extensive but there's no "runner" user on my system

slook commented 9 months ago

@hash000000 issue is #2850 which is unrelated to this. Btw that BufferError is fixed in 3.3.1dev1 available at https://github.com/nicotine-plus/nicotine-plus/blob/master/doc/TESTING.md#macos

@thep50 It looks like GTK is not starting for some reason, it is not appearing in the startup sequence. You might have a missing dependency. Do you have any other GTK apps to test, like Gedit or GIMP for example, and do they launch?

What happens when you press Control+C or type quit does more log lines appear in the Terminal relating to quitting Nicotine+?

thep50 commented 9 months ago

@thep50 It looks like GTK is not starting for some reason, it is not appearing in the startup sequence. You might have a missing dependency. Do you have any other GTK apps to test, like Gedit or GIMP for example, and do they launch?

I use Transmission which uses GTK and it runs fine.

What happens when you press Control+C or type quit does more log lines appear in the Terminal relating to quitting Nicotine+?

I tried both and nothing appears.

slook commented 9 months ago

What about Command+C?

thep50 commented 9 months ago

What about Command+C?

Nothing.

slook commented 9 months ago

The program is stuck somewhere shortly after the "Loading..." log line...

https://github.com/nicotine-plus/nicotine-plus/blob/cec4c043c5a4d085274761f2a0b74bf664a00c8e/pynicotine/core.py#L102-L111

So it might be an issue in a networking module? Maybe try a different network adapter (i.e. switch internet from WiFi to Ethernet), or try disabling all networking adapters in System Settings, then does doing that allow the main application window to launch?

Is there a high CPU process usage while the program is hanging?

thep50 commented 9 months ago

I tried running with the network adapter disabled but still hangs. While hanging, Nicotine+ was using over 60% CPU.

mathiascode commented 9 months ago

@thep50 It looks like GTK is not starting for some reason, it is not appearing in the startup sequence. You might have a missing dependency. Do you have any other GTK apps to test, like Gedit or GIMP for example, and do they launch?

I use Transmission which uses GTK and it runs fine.

Transmission doesn't use GTK on macOS. A better app to test would be Gaphor, which also uses GTK 4: https://gaphor.org/

Also try running Nicotine+ in headless mode, then we'll know if the issue is on the GUI side or not. In a terminal, run: /Applications/Nicotine+.app/Contents/MacOS/Nicotine+ --headless

thep50 commented 9 months ago

Transmission doesn't use GTK on macOS. A better app to test would be Gaphor, which also uses GTK 4: https://gaphor.org/

Ok, I installed Gaphor and it launched fine.

Also try running Nicotine+ in headless mode, then we'll know if the issue is on the GUI side or not. In a terminal, run: /Applications/Nicotine+.app/Contents/MacOS/Nicotine+ --headless

Did this and it did get past the loading line and start up the app in the terminal, connected to the server and all.

slook commented 9 months ago

Please post the log output of the successful headless run.

thep50 commented 9 months ago

[2024-02-03 15:04:11] [Misc] Using configuration: /Users/[user]/.config/nicotine/config [2024-02-03 15:04:11] Loading Python 3.11.6 [2024-02-03 15:04:11] [Misc] Using Python executable: /Applications/Nicotine+.app/Contents/MacOS/Nicotine+ [2024-02-03 15:04:11] [Misc] Using Nicotine+ executable: /Applications/Nicotine+.app/Contents/MacOS/lib/pynicotine [2024-02-03 15:04:11] Loading Nicotine+ 3.3.0 [2024-02-03 15:04:12] Loading plugin system [2024-02-03 15:04:12] Loaded plugin Nicotine+ Commands [2024-02-03 15:04:12] Rebuilding shares… [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface gif0: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface stf0: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface en1: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface en2: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface bridge0: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface p2p0: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface awdl0: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface llw0: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface utun0: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface utun1: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Failed to get IP address for network interface utun2: [Errno 49] Can't assign requested address [2024-02-03 15:04:12] [Misc] Network interface: en0 [2024-02-03 15:04:12] [Misc] Local IP address: [2024-02-03 15:04:12] [Misc] Maximum number of concurrent connections (sockets): 3072 [2024-02-03 15:04:12] Listening on port: [2024-02-03 15:04:12] Connecting to server.slsknet.org:2242 [2024-02-03 15:04:12] Connected to server server.slsknet.org:2242, logging in… [2024-02-03 15:04:12] [Misc] Creating Port Mapping rule... [2024-02-03 15:04:12] [Misc] NAT-PMP: Portmap request attempt 1 of 2: b'\x00\x02\x00\x00\xc3{\xc3{\x00\x00\xa8\xc0' [2024-02-03 15:04:12] [Misc] NAT-PMP: Portmap request attempt 2 of 2: b'\x00\x02\x00\x00\xc3{\xc3{\x00\x00\xa8\xc0' [2024-02-03 15:04:13] [Misc] NAT-PMP: Giving up, all 2 portmap requests timed out [2024-02-03 15:04:13] [Misc] NAT-PMP not available, falling back to UPnP: NAT-PMP error code None [2024-02-03 15:04:13] [Misc] UPnP: Discovering... delay=1 seconds [2024-02-03 15:04:13] [Misc] UPnP: SSDP request: b'M-SEARCH HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nST: urn:schemas-upnp-org:service:WANIPConnection:1\r\nMAN: "ssdp:discover"\r\nMX: 1\r\n\r\n' [2024-02-03 15:04:13] [Misc] UPnP: Sent M-SEARCH IP request 1 [2024-02-03 15:04:13] [Misc] UPnP: SSDP request: b'M-SEARCH HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nST: urn:schemas-upnp-org:service:WANPPPConnection:1\r\nMAN: "ssdp:discover"\r\nMX: 1\r\n\r\n' [2024-02-03 15:04:13] [Misc] UPnP: Sent M-SEARCH PPP request 1 [2024-02-03 15:04:13] [Misc] UPnP: SSDP request: b'M-SEARCH HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nST: urn:schemas-upnp-org:device:InternetGatewayDevice:1\r\nMAN: "ssdp:discover"\r\nMX: 1\r\n\r\n' [2024-02-03 15:04:13] [Misc] UPnP: Sent M-SEARCH IGD request 1 [2024-02-03 15:04:13] [Misc] UPnP: SSDP request: b'M-SEARCH HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nST: urn:schemas-upnp-org:service:WANIPConnection:2\r\nMAN: "ssdp:discover"\r\nMX: 1\r\n\r\n' [2024-02-03 15:04:13] [Misc] UPnP: Sent M-SEARCH IP request 2 [2024-02-03 15:04:13] [Misc] UPnP: SSDP request: b'M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nST: urn:schemas-upnp-org:device:InternetGatewayDevice:2\r\nMAN: "ssdp:discover"\r\nMX: 1\r\n\r\n' [2024-02-03 15:04:13] [Misc] UPnP: Sent M-SEARCH IGD request 2 [2024-02-03 15:04:14] [Misc] UPnP: 0 service(s) detected [2024-02-03 15:04:14] [Misc] UPnP not available, port forwarding failed: No UPnP devices found [2024-02-03 15:04:14] UPnP: Failed to forward external port 50043: No UPnP devices found [2024-02-03 15:04:14] [Misc] Traceback (most recent call last): File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/portmapper.py", line 562, in _add_port_mapping File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/portmapper.py", line 175, in add_port_mapping pynicotine.portmapper.PortmapError: NAT-PMP error code None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/portmapper.py", line 569, in _add_port_mapping File "/Users/runner/work/nicotine-plus/nicotine-plus/pynicotine/portmapper.py", line 463, in add_port_mapping pynicotine.portmapper.PortmapError: No UPnP devices found

[2024-02-03 15:04:14] [Misc] Server message type 160 size 19 contents bytearray(b'\x01\x00\x00\x00\x0b\x00\x00\x00bryan adams') unknown

[2024-02-03 15:04:14] 1940 privileged users [2024-02-03 15:04:14] You have no Soulseek privileges. While privileges are active, your downloads will be queued ahead of those of non-privileged users.

slook commented 9 months ago

I dont see the shares rebuilding finished. This indicates that the shares scanner is somehow blocking the GUI from being drawn.

Do you have a large number of files within your configured shares?

What is the output if you type shares in the headless console?

thep50 commented 9 months ago

When I type shares it shows all the usual folders I had under my shares before, and says all of them are configured.

I do have a large amount of files in my shares, which I was wondering if it was rebuilding before launching the GUI. When I last had to rebuild my library from scratch some time recently on 3.2.9, it took about 2 hours of scanning to complete.

slook commented 9 months ago

If you wait about 2 hours, then the GUI shall eventually appear, along with a log line that states "Rescan complete"... The shares database format has been changed in 3.3.0 which is why a full rebuild of the shares index is forced on the first run after upgrading, which is highly unfortunate that it coincides with this bug!

The loading order of the startup sequence is obviously incorrect again. That was fixed before a few versions ago but there must have been a regression somewhere along the line, maybe related to a concern over incorrect number of shared folders being reported to clients who have a leech detector when downloading while rescanning.

Extended launch time is related to one of the aspects mentioned in issue #2779 I think that's why that issue is still open.

slook commented 9 months ago

Shares() is one of the first modules to define its event callbacks: https://github.com/nicotine-plus/nicotine-plus/blob/cec4c043c5a4d085274761f2a0b74bf664a00c8e/pynicotine/core.py#L115-L119

Therefore the "start" event will call Shares() early on before most other modules: https://github.com/nicotine-plus/nicotine-plus/blob/cec4c043c5a4d085274761f2a0b74bf664a00c8e/pynicotine/core.py#L222

Then the rescan_shares() function is called from within the same thread in start(): https://github.com/nicotine-plus/nicotine-plus/blob/cec4c043c5a4d085274761f2a0b74bf664a00c8e/pynicotine/shares.py#L691-L696

Then a _process_scanner() thread is spawned from rescan_shares() function: https://github.com/nicotine-plus/nicotine-plus/blob/cec4c043c5a4d085274761f2a0b74bf664a00c8e/pynicotine/shares.py#L1074-L1081

Thus, rescan_shares() should return None immediately while Scanner() runs in the background, but that it not working properly in this case.

mathiascode commented 9 months ago

@slook You're forgetting that the issue happens even with a fresh config, so shares can't be responsible for it.

@thep50 Could you install Homebrew, then run the following commands in a terminal?

git clone https://github.com/nicotine-plus/nicotine-plus
cd nicotine-plus/
brew install python@3.11 py-spy
python3.11 packaging/macos/dependencies.py

Then run py-spy with: py-spy top python3.11 nicotine

When py-spy is running, press L to show line numbers in the output, wait a few minutes, then send the output here.

thep50 commented 9 months ago

Alright I've done all that and when I ran py-spy at the end, this process completed instantly.

Collecting samples from '/usr/local/Cellar/python@3.11/3.11.7_1/Frameworks/Python.framework/Versions/3.11/Resources/Python.app/Contents/MacOS/Python nicotine py-spy top python3.11 nicotine' (python v3.11.7) Total Samples 10 GIL: 60.00%, Active: 100.00%, Threads: 1

%Own %Total OwnTime TotalTime Function (filename)
40.00% 40.00% 0.040s 0.040s get_data () 20.00% 100.00% 0.020s 0.100s _call_with_frames_removed () 10.00% 10.00% 0.010s 0.010s next (re/_parser.py) 10.00% 10.00% 0.010s 0.010s getitem (re/_parser.py) 10.00% 10.00% 0.010s 0.010s _unpack_uint32 () 10.00% 50.00% 0.010s 0.050s (pynicotine/slskmessages.py) 0.00% 100.00% 0.000s 0.100s _load_unlocked () 0.00% 20.00% 0.000s 0.020s _parse_sub (re/_parser.py) 0.00% 20.00% 0.000s 0.020s (configparser.py) 0.00% 10.00% 0.000s 0.010s (sitecustomize.py) 0.00% 100.00% 0.000s 0.100s exec_module () 0.00% 20.00% 0.000s 0.020s _compile (re/init__.py) 0.00% 10.00% 0.000s 0.010s (selectors.py) 0.00% 100.00% 0.000s 0.100s _find_and_load () 0.00% 60.00% 0.000s 0.060s _handle_fromlist () 0.00% 10.00% 0.000s 0.010s create_module () 0.00% 10.00% 0.000s 0.010s exec_module () 0.00% 10.00% 0.000s 0.010s get (re/_parser.py) 0.00% 50.00% 0.000s 0.050s get_code () 0.00% 10.00% 0.000s 0.010s _validate_timestamp_pyc () 0.00% 10.00% 0.000s 0.010s (argparse.py) 0.00% 50.00% 0.000s 0.050s (pynicotine/core.py) 0.00% 80.00% 0.000s 0.080s (pynicotine/init.py) 0.00% 20.00% 0.000s 0.020s compile (re/_compiler.py) 0.00% 10.00% 0.000s 0.010s main () 0.00% 80.00% 0.000s 0.080s load_module (nicotine) 0.00% 20.00% 0.000s 0.020s _parse (re/_parser.py) 0.00% 10.00% 0.000s 0.010s execsitecustomize () 0.00% 10.00% 0.000s 0.010s (re/init.py) 0.00% 90.00% 0.000s 0.090s (nicotine)

Press Control-C to quit, or ? for help.

process 73193 ended usage: nicotine [-h] [-c file] [-u dir] [-s] [-b ip] [-l port] [-r] [-n] [-v] nicotine: error: unrecognized arguments: py-spy top python3.11 nicotine

mathiascode commented 9 months ago

Hm, it shouldn't exit immediately. What's the log output if you just run python3.11 -m pynicotine

and then py-spy top python3.11 -- -m pynicotine

?

thep50 commented 9 months ago

What's the log output if you just run python3.11 -m pynicotine

I entered that and it quickly launched the GUI in Python and showed this

[2024-02-03 21:56:20] [Misc] Using configuration: /Users/[user]/.config/nicotine/config [2024-02-03 21:56:20] Loading Python 3.11.7 [2024-02-03 21:56:20] [Misc] Using Python executable: /usr/local/opt/python@3.11/bin/python3.11 [2024-02-03 21:56:20] [Misc] Using Nicotine+ executable: /Users/[user]/nicotine-plus/pynicotine [2024-02-03 21:56:20] Loading Nicotine+ 3.3.1.dev1 [2024-02-03 21:56:22] Loading GTK 4.12.5 [2024-02-03 21:56:24] Rebuilding shares… [2024-02-03 21:56:24] Loading plugin system [2024-02-03 21:56:24] Loaded plugin Nicotine+ Commands

(org.nicotine_plus.Nicotine:74462): Gtk-CRITICAL **: 21:56:43.732: gtk_css_node_insert_after: assertion 'previous_sibling == NULL || previous_sibling->parent == parent' failed [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface gif0: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface stf0: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface en1: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface en2: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface bridge0: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface p2p0: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface awdl0: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface llw0: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface utun0: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface utun1: [Errno 49] Can't assign requested address [2024-02-03 21:57:49] [Misc] Failed to get IP address for network interface utun2: [Errno 49] Can't assign requested address

And it's still been working for some time after these lines without any updates. It says on the GUI it's scanning my shares, which should be from scratch since I force closed the app earlier, so should take a few hours. I can see if I can do the second command once it finishes.

thep50 commented 9 months ago

It finished rescanning with no problems.

and then py-spy top python3.11 -- -m pynicotine

this brings up:

Unknown command: /py-spy. Type /help to list available commands.

slook commented 9 months ago

Type quit then press Y for yes (or, exit from the GUI). Then, after exiting nicotine and you are back in the Terminal shell, type the second command... py-spy top python3.11 -- -m pynicotine That should show which N+ module is consuming 60% CPUI or whatever resources.

Also, try launching the app normally from the icon, how long does it take for the window to appear now?

You're forgetting that the issue happens even with a fresh config, so shares can't be responsible for it.

I didn't think that clearing the user's config had been attempted.

(org.nicotine_plus.Nicotine:74462): Gtk-CRITICAL **: 21:56:43.732: gtk_css_node_insert_after: assertion 'previous_sibling == NULL || previous_sibling->parent == parent' failed

This error looks relevant.

chenrui333 commented 9 months ago

seeing the same launch issue on the homebrew build

$ lldb /opt/homebrew/Cellar/nicotine-plus/3.3.0/bin/nicotine
(lldb) target create "/opt/homebrew/Cellar/nicotine-plus/3.3.0/bin/nicotine"
error: '/opt/homebrew/Cellar/nicotine-plus/3.3.0/bin/nicotine' doesn't contain any 'host' platform architectures: arm64, armv7, armv7f, armv7k, armv7s, armv7m, armv7em, armv6m, armv6, armv5, armv4, arm, thumbv7, thumbv7k, thumbv7s, thumbv7f, thumbv7m, thumbv7em, thumbv6m, thumbv6, thumbv5, thumbv4t, thumb, x86_64, x86_64, arm64, arm64e, arm64, arm64e
slook commented 9 months ago

This is an issue at our end to do with packaging, since the application is reported to start normally when executed using brew or the native pyhon wrapper, but doesn't work properly from the application image launcher.

thep50 commented 9 months ago

Type quit then press Y for yes (or, exit from the GUI). Then, after exiting nicotine and you are back in the Terminal shell, type the second command... py-spy top python3.11 -- -m pynicotine That should show which N+ module is consuming 60% CPUI or whatever resources.

I did this and got this

nicotine: error: unrecognized arguments: py-spy top python3.11 -- -m pynicotine

Also, try launching the app normally from the icon, how long does it take for the window to appear now?

Still not launching after a while.

slook commented 9 months ago

py-spy top python3.11 -m pynicotine ?

thep50 commented 9 months ago

py-spy top python3.11 -m pynicotine ?

only shows blank lines followed by process ended.

mathiascode commented 9 months ago

This error looks relevant.

Irrelevant, it happens when pressing keys inside a treeview widget in GTK 4.

In any case, py-spy is a waste of time, since Nicotine+ works fine when running in Homebrew. I'll have to check if macOS provides a way to see what's going on with our package.

slook commented 9 months ago

https://github.com/nicotine-plus/nicotine-plus/issues/2852#issuecomment-1925660023:

error: '/opt/homebrew/Cellar/nicotine-plus/3.3.0/bin/nicotine' doesn't contain any 'host' platform architectures: arm64, armv7, armv7f, armv7k, armv7s, armv7m, armv7em, armv6m, armv6, armv5, armv4, arm, thumbv7, thumbv7k, thumbv7s, thumbv7f, thumbv7m, thumbv7em, thumbv6m, thumbv6, thumbv5, thumbv4t, thumb, x86_64, x86_64, arm64, arm64e, arm64, arm64e
mathiascode commented 9 months ago

@thep50 Can you check if the following build works (scroll down for download links)? https://github.com/mathiascode/nicotine-plus/actions/runs/7776094359

thep50 commented 9 months ago

@thep50 Can you check if the following build works (scroll down for download links)? https://github.com/mathiascode/nicotine-plus/actions/runs/7776094359

Doesn't launch, same as before.

mathiascode commented 9 months ago

In that case, we've confirmed that the Homebrew issue is not related.

@thep50 Can you launch this build in the terminal (as described in https://github.com/nicotine-plus/nicotine-plus/issues/2852#issuecomment-1925387115), and post the logs? https://github.com/mathiascode/nicotine-plus/actions/runs/7776549796

thep50 commented 9 months ago

@thep50 Can you launch this build in the terminal (as described in #2852 (comment)), and post the logs? https://github.com/mathiascode/nicotine-plus/actions/runs/7776549796

Done and it freezes at step7

/Applications/Nicotine+.app/Contents/MacOS/Nicotine+ ; exit; ~ % /Applications/Nicotine+.app/Contents/MacOS/Nicotine+ ; exit; corestep1 [2024-02-04 15:45:55] [Misc] Using configuration: /Users/[user]/.config/nicotine/config [2024-02-04 15:45:55] Loading Python 3.11.7 [2024-02-04 15:45:55] [Misc] Using Python executable: /Applications/Nicotine+.app/Contents/MacOS/Nicotine+ [2024-02-04 15:45:55] [Misc] Using Nicotine+ executable: /Applications/Nicotine+.app/Contents/MacOS/lib/pynicotine [2024-02-04 15:45:55] Loading Nicotine+ 3.3.1.dev1 corestep2 corestep3 corestep4 corestep5 corestep6 step1 step2 step3 step4 step5 step6 step7

mathiascode commented 9 months ago

Looks like it hangs when importing GTK: https://github.com/nicotine-plus/nicotine-plus/blob/cec4c043c5a4d085274761f2a0b74bf664a00c8e/pynicotine/gtkgui/__init__.py#L89

@thep50 Can you try the following steps?

  1. Launch the app, let it hang for some time
  2. In the system's Activity Monitor, double-click the Nicotine+ process -> Quit -> Force Quit
  3. A dialog should appear about the app force quitting (You have forced Nicotine+ to quit). Press "Report...".
  4. Another dialog should appear (Problem report for Nicotine+). Press "Show Details", then copy the output and send it to my email address (on my GitHub profile).

(I can't reproduce the bug on my system unfortunately, but I did go through these steps after manually hanging the app)

thep50 commented 9 months ago

@thep50 Can you try the following steps?

I tried letting it hang for 20 minutes and did the next step, but it didn't bring up any dialog after force quitting.

mathiascode commented 9 months ago

What's the output of the following command in a terminal? defaults read com.apple.CrashReporter DialogType

Try enabling it: defaults write com.apple.CrashReporter DialogType developer

Then repeat the steps, and see if the dialog shows up.

thep50 commented 9 months ago

Ok it wasn't enabled so I enabled it, but the dialog still doesn't show up. Even after restarting.

mathiascode commented 9 months ago

Alright, let's try something else...

  1. Launch the app, let it hang for some time
  2. In the system's Activity Monitor, double-click the Nicotine+ process, and press "Sample" (there are two Nicotine+ processes, make sure you choose the one with an icon)
  3. Copy the output, and send it to my email
mathiascode commented 9 months ago

Thanks for the email, I believe I've found the issue. Please try both of these builds, and let me know which one works:

https://github.com/mathiascode/nicotine-plus/actions/runs/7779021415 https://github.com/mathiascode/nicotine-plus/actions/runs/7779085785

thep50 commented 9 months ago

Ok great, the first one didn't work but the second one (Nicotine+-3.3.1.dev1 5) launches as normal! Seems fixed.

mathiascode commented 9 months ago

The fix is available in 3.3.1.dev1: https://nicotine-plus.org/doc/TESTING.html