[foreign-memaccess+abi] RFR: 8267989: Exceptions thrown during upcalls should be handled [v4]

Jorn Vernee jvernee at openjdk.java.net
Wed Jun 2 12:26:20 UTC 2021


> Hi,
> 
> This patch regularizes exception handling for exceptions thrown during upcalls. Exceptions thrown during upcalls are now always handled by printing out the stack trace and then calling `System::exit` (see the JBS issue for some motivation).
> 
> I've added some documentation for the exception handling to `CLinker::upcallStub`, as well as a new public `int` constant in `CLinker` which is the error code that is passed to `System::exit`. The returned error code can also be configured by a system property, which for now is mostly useful for testing purposes to make sure we don't get a consistent false positive.
> 
> Thanks,
> Jorn

Jorn Vernee has updated the pull request incrementally with one additional commit since the last revision:

  Eagerly check whether upcall target throws any exceptions.
  
  Adapt the existing exception check done by MemoryHandles to be more lenient towards bound method handles which might or might not throw an exception, and re-use that check.

-------------

Changes:
  - all: https://git.openjdk.java.net/panama-foreign/pull/543/files
  - new: https://git.openjdk.java.net/panama-foreign/pull/543/files/a7e73a9b..2a602b0a

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=543&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=543&range=02-03

  Stats: 145 lines in 12 files changed: 90 ins; 18 del; 37 mod
  Patch: https://git.openjdk.java.net/panama-foreign/pull/543.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/543/head:pull/543

PR: https://git.openjdk.java.net/panama-foreign/pull/543


More information about the panama-dev mailing list