libctru icon indicating copy to clipboard operation
libctru copied to clipboard

Possible soft lock in fputs

Open squalldc opened this issue 3 years ago • 1 comments

I'm getting a random soft lock in fputs (on a real 3ds), doesn't occur in citra. There's no problems if I disable the calls to this.

It's getting stuck here:

#0 svcArbitrateAddressNoTimeout () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:253 #1 0x00418f64 in syncArbitrateAddress (value=0, type=ARBITRATION_WAIT_IF_LESS_THAN, addr=0x4e1db4 <impure_data+964>) at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/synchronization.c:61 #2 LightLock_Lock (lock=lock@entry=0x4e1db4 <impure_data+964>) at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/synchronization.c:61 #3 0x00419064 in RecursiveLock_Lock (lock=0x4e1db4 <impure_data+964>) at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/synchronization.c:129 #4 0x0042f848 in _fputs_r ()

The other threads aren't hogging the cpu either: Id Target Id Frame 1 Thread 282 (TLS: 0x1ffb2000, idle, dynamic prio.: 48, static prio.: 48, ideal core: 0, running on core 0) svcArbitrateAddressNoTimeout () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:253 2 Thread 283 (TLS: 0x1ffb2200, idle, dynamic prio.: 49, static prio.: 49, ideal core: 0, running on core 0) svcWaitSynchronizationN () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:273 3 Thread 288 (TLS: 0x1ffb2400, running, dynamic prio.: 26, static prio.: 26, ideal core: 0, running on core 0) svcWaitSynchronization () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:263 4 Thread 289 (TLS: 0x1ffb2600, running, dynamic prio.: 47, static prio.: 47, ideal core: 2, running on core 2) svcSleepThread () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:85 5 Thread 290 (TLS: 0x1ffb2800, running, dynamic prio.: 46, static prio.: 46, ideal core: 0, running on core 0) svcSleepThread () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:85

  • 6 Thread 292 (TLS: 0x1ffb2a00, running, dynamic prio.: 24, static prio.: 24, ideal core: 0, running on core 0) svcWaitSynchronization () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:263 7 Thread 293 (TLS: 0x1ffb2c00, idle, dynamic prio.: 46, static prio.: 46, ideal core: 0, running on core 0) svcArbitrateAddressNoTimeout () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.1/libctru/source/svc.s:253

squalldc avatar Apr 15 '21 00:04 squalldc

Could you try and put together a testcase for us to have a look at?

WinterMute avatar Apr 15 '21 21:04 WinterMute