Syncthing stuck and GUI unresponsive after upgrading to v2.0.6

Immediately after upgrading from v2.0.5 to v2.0.6 on my main PC, Syncthing got stuck in the following state:

The GUI is completely unresponsive, and there is also no activity in the Task Manager, i.e. almost zero CPU usage and no changes in the RAM usage. I would be very thankful if you could have a look at the goroutine dump and the profiles, and check if there is anything obvious in there.

For the record, this may very well not be related to v2.0.6 specifically, it is just the timeframe the issue has presented itself. Syncthing was compiled from https://github.com/tomasz1986/syncthing/tree/tomasz86/releases/tomasz86-v2.0.6 and the OS is Windows 10 x64.

Many things are blocked on writing to a log file:

goroutine 311 [semacquire, 11 minutes]:
internal/poll.runtime_Semacquire(0xc003c18c00?)
	runtime/sema.go:76 +0x25
internal/poll.(*fdMutex).rwlock(0xc0000dc288, 0x38?)
	internal/poll/fd_mutex.go:154 +0xc5
internal/poll.(*FD).writeLock(...)
	internal/poll/fd_mutex.go:239
internal/poll.(*FD).Write(0xc0000dc288, {0xc0028e4000, 0x16d, 0x2c0})
	internal/poll/fd_windows.go:749 +0x55
os.(*File).write(...)
	os/file_posix.go:46
os.(*File).Write(0xc0000aa030, {0xc0028e4000?, 0x16d, 0xc00089cb80?})
	os/file.go:215 +0x4e
fmt.Fprintf({0x7ff6841963e0, 0xc0000aa030}, {0x7ff683df4567, 0x9}, {0xc00089cb80, 0x3, 0x3})
	fmt/print.go:225 +0x97
github.com/syncthing/syncthing/internal/slogutil.(*Line).WriteTo(0xc00089cee0, {0x7ff6841963e0, 0xc0000aa030})
	github.com/syncthing/syncthing/internal/slogutil/line.go:26 +0x11c
github.com/syncthing/syncthing/internal/slogutil.(*formattingHandler).Handle(_, {_, _}, {{0xc226805d818f5e48, 0x242c74ce9, 0x7ff68494efe0}, {0x7ff683e11663, 0x1d}, 0x0, 0x7ff68382752f, ...})
	github.com/syncthing/syncthing/internal/slogutil/formatting.go:98 +0xfab
log/slog.(*Logger).log(0xc000042310, {0x7ff68419f970?, 0xc0004dc3c0?}, 0x0, {0x7ff683e11663, 0x1d}, {0xc00089dac8, 0x2, 0x2})
	log/slog/logger.go:256 +0x208
log/slog.InfoContext(...)
	log/slog/logger.go:296
github.com/syncthing/syncthing/lib/connections.(*service).handleHellos(0xc0002da140, {0x7ff68419f970, 0xc0004dc3c0})
	github.com/syncthing/syncthing/lib/connections/service.go:439 +0x1685
github.com/syncthing/syncthing/lib/svcutil.(*service).Serve(0xc000702d20, {0x7ff68419f970, 0xc0004dc3c0})
	github.com/syncthing/syncthing/lib/svcutil/svcutil.go:129 +0xce
github.com/thejerf/suture/v4.(*Supervisor).runService.func2()
	github.com/thejerf/suture/v4@v4.0.6/supervisor.go:570 +0xd8
created by github.com/thejerf/suture/v4.(*Supervisor).runService in goroutine 280
	github.com/thejerf/suture/v4@v4.0.6/supervisor.go:544 +0x18b

Can’t say why, that’s deep in the Go internals, but it means that things block when trying to print a log line.

Hmm, honestly, I’ve got no idea what happened then. After posting on the forum, I killed the process and restarted the program, and now everything is working fine again.