Skip to content

"Reloading" crashes the CardAndTerminalManager thread on GNU/Linux systems #22

@nicolasbarbier

Description

@nicolasbarbier

One of our customers has the following on average one time per day:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
  at be.fedict.commons.eid.client.impl.CardTerminalsProxy.reloadSmartCardService(CardTerminalsProxy.java:126)
  at be.fedict.commons.eid.client.impl.CardTerminalsProxy.doList(CardTerminalsProxy.java:81)
  at be.fedict.commons.eid.client.impl.CardTerminalsProxy.list(CardTerminalsProxy.java:58)
  at be.fedict.commons.eid.client.CardAndTerminalManager.handlePCSCEvents(CardAndTerminalManager.java:412)
  at be.fedict.commons.eid.client.CardAndTerminalManager.run(CardAndTerminalManager.java:387)
  at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
  at java.base/jdk.internal.reflect.DirectMethodHandleAccessor$NativeAccessor.invoke0(Native Method)
  at java.base/jdk.internal.reflect.DirectMethodHandleAccessor$NativeAccessor.invoke(Unknown Source)
  at java.base/java.lang.reflect.Method.invoke(Unknown Source)
  at be.fedict.commons.eid.client.impl.CardTerminalsProxy.reloadSmartCardService(CardTerminalsProxy.java:112)
  ... 5 more
Caused by: sun.security.smartcardio.PCSCException: SCARD_E_NO_SERVICE
  at java.smartcardio/sun.security.smartcardio.PCSC.SCardEstablishContext(Native Method)
  ... 9 more

  • OS: GNU/Linux; openSUSE, either SLES 15 SP6 or Leap 15.6
  • Library version: 1.2.0
  • Java: 21.0.7

We do not know what the customer specifically does that might trigger this. We have a ton (1k+) of other customers running the same code on Windows and macOS, they do not have this problem at all.

Looking at the code, the whole "reloading" thing seems to be some kind of workaround in itself. It just happens to not (ever? not sure) work on GNU/Linux systems.

We are not 100% about this, but according to our crash reports, it seems that this problem started to occur since we switched from version 1.1.1 to 1.2.0 of the library. We need version 1.2.0 because of the improved support for foreigners' cards.

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