Skip to content

cryptography CANNOT work with multi context due to TypeError: object.__init__() takes exactly one argument (the instance to initialize) #557

@buuuuuuug

Description

@buuuuuuug

i tried to use cryptography==44.0.2 with graalpython 25.0.0
when set python.IsolateNativeModules to true
the second context will error when executing method default_backend() of cryptography.

[ERROR] org.example.embedding.test.EmbeddingTest.testSuccess -- Time elapsed: 72.35 s <<< ERROR!
java.lang.RuntimeException: TypeError: TypeError: object.__init__() takes exactly one argument (the instance to initialize)
        at org.example.embedding.Main.test(Main.java:100)
        at org.example.embedding.Main.main(Main.java:31)
        at org.example.embedding.test.EmbeddingTest.testSuccess(EmbeddingTest.java:54)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
        at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
        at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
Caused by: TypeError: TypeError: object.__init__() takes exactly one argument (the instance to initialize)
        at <python>.default_backend(Unknown)
        at <python>.decryptAES_cryptography(Unknown)
        at org.graalvm.polyglot.Value.execute(Value.java:1049)
        at org.example.embedding.Main.test(Main.java:85)
        ... 28 more

there is a repo which will reproduce the error
https://github.com/buuuuuuug/pycrypto_graalpy/tree/bug/20251010_object_init_err

clone

git clone https://github.com/buuuuuuug/pycrypto_graalpy.git -b bug/20251010_object_init_err && cd pycrypto_graalpy

versions

mvn --version
Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
Maven home: /root/.sdkman/candidates/maven/current
Java version: 25, vendor: Oracle Corporation, runtime: /root/.sdkman/candidates/java/25-graal
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "6.8.0-40-generic", arch: "amd64", family: "unix"

test

mvn test

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