Skip to content

Possible soft lock in fputs #482

Description

@squalldc

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

Activity

  1. WinterMute commented on Apr 15, 2021

    @WinterMute
    Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions