flintlib / arb

Arb has been merged into FLINT -- use https://github.com/flintlib/flint/ instead
http://arblib.org/
GNU Lesser General Public License v2.1
457 stars 137 forks source link

double-free and possible memory leak in acb_dirichlet_hardy_z #421

Closed crowlogic closed 2 years ago

crowlogic commented 2 years ago

I ran into this working on arb4j and then when running very large renders getting my process crashed with no ram left.. when I enabled jemalloc it crashed on parts involving the Z function as well. I will look into this further

https://github.com/crowlogic/arb4j/commit/da023925435a31bab910ecbe8347512c9d250aa3

FATAL ERROR in native method: Tried to free pointer 0x0x7fd460001530 which hasn't been allocated

at arb.arbJNI.acb_dirichlet_hardy_z(Native Method)

FATAL ERROR in native method: Tried to free pointer 0x0x7fd55c7b96f0 which hasn't been allocated

at arb.arb.acb_dirichlet_hardy_z(arb.java:441)
at arb.arbJNI.acb_dirichlet_hardy_z(Native Method)
at arb.functions.complex.ZFunction.evaluate(ZFunction.java:41)
at arb.arb.acb_dirichlet_hardy_z(arb.java:441)
at arb.functions.complex.ComplexComposition.evaluate(ComplexComposition.java:36)
at arb.functions.complex.ZFunction.evaluate(ZFunction.java:41)
at arb.graphing.ComplexFunctionPlotter.evalFunction(ComplexFunctionPlotter.java:965)
at arb.functions.complex.ComplexComposition.evaluate(ComplexComposition.java:36)
at arb.graphing.ComplexFunctionPlotter.refineFunctionEvaluation(ComplexFunctionPlotter.java:436)
at arb.graphing.ComplexFunctionPlotter.evalFunction(ComplexFunctionPlotter.java:965)
at arb.graphing.ComplexFunctionPlotter.refineFunctionEvaluation(ComplexFunctionPlotter.java:436)
at arb.graphing.ComplexFunctionPlotter.evaluateFunctionNoInterpolation(ComplexFunctionPlotter.java:411)
at arb.graphing.ComplexFunctionPlotter.lambda$4(ComplexFunctionPlotter.java:460)
at arb.graphing.ComplexFunctionPlotter.evaluateFunctionNoInterpolation(ComplexFunctionPlotter.java:411)
at arb.graphing.ComplexFunctionPlotter$$Lambda$227/0x0000000800cd4848.accept(Unknown Source)
at arb.graphing.ComplexFunctionPlotter.lambda$4(ComplexFunctionPlotter.java:460)
at java.util.stream.ForEachOps$ForEachOp$OfInt.accept(java.base@17.0.3/ForEachOps.java:204)
at arb.graphing.ComplexFunctionPlotter$$Lambda$227/0x0000000800cd4848.accept(Unknown Source)
at java.util.stream.ReferencePipeline$4$1.accept(java.base@17.0.3/ReferencePipeline.java:214)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(java.base@17.0.3/ArrayList.java:1625)
at java.util.stream.ForEachOps$ForEachOp$OfInt.accept(java.base@17.0.3/ForEachOps.java:204)
at java.util.stream.AbstractPipeline.copyInto(java.base@17.0.3/AbstractPipeline.java:509)
at java.util.stream.ForEachOps$ForEachTask.compute(java.base@17.0.3/ForEachOps.java:290)
at java.util.stream.ReferencePipeline$4$1.accept(java.base@17.0.3/ReferencePipeline.java:214)
at java.util.concurrent.CountedCompleter.exec(java.base@17.0.3/CountedCompleter.java:754)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(java.base@17.0.3/ArrayList.java:1625)
at java.util.concurrent.ForkJoinTask.doExec(java.base@17.0.3/ForkJoinTask.java:373)
at java.util.stream.AbstractPipeline.copyInto(java.base@17.0.3/AbstractPipeline.java:509)
at java.util.concurrent.ForkJoinTask.invoke(java.base@17.0.3/ForkJoinTask.java:686)
at java.util.stream.ForEachOps$ForEachTask.compute(java.base@17.0.3/ForEachOps.java:290)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(java.base@17.0.3/ForEachOps.java:159)
at java.util.concurrent.CountedCompleter.exec(java.base@17.0.3/CountedCompleter.java:754)
at java.util.stream.ForEachOps$ForEachOp$OfInt.evaluateParallel(java.base@17.0.3/ForEachOps.java:188)
at java.util.concurrent.ForkJoinTask.doExec(java.base@17.0.3/ForkJoinTask.java:373)
at java.util.stream.AbstractPipeline.evaluate(java.base@17.0.3/AbstractPipeline.java:233)
at java.util.concurrent.ForkJoinTask.invoke(java.base@17.0.3/ForkJoinTask.java:686)
at java.util.stream.IntPipeline.forEach(java.base@17.0.3/IntPipeline.java:463)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(java.base@17.0.3/ForEachOps.java:159)
at arb.graphing.ComplexFunctionPlotter.evaluateFunctionOnGrid(ComplexFunctionPlotter.java:456)
at arb.graphing.ComplexFunctionPlotter.plot(ComplexFunctionPlotter.java:570)
at arb.graphing.plots.XPlotter.main(XPlotter.java:38)
at java.util.stream.ForEachOps$ForEachOp$OfInt.evaluateParallel(java.base@17.0.3/ForEachOps.java:188)
at java.util.stream.AbstractPipeline.evaluate(java.base@17.0.3/AbstractPipeline.java:233)
at java.util.stream.IntPipeline.forEach(java.base@17.0.3/IntPipeline.java:463)
at arb.graphing.ComplexFunctionPlotter.evaluateFunctionOnGrid(ComplexFunctionPlotter.java:456)
at arb.graphing.ComplexFunctionPlotter.plot(ComplexFunctionPlotter.java:570)
at arb.graphing.plots.XPlotter.main(XPlotter.java:38)
crowlogic commented 2 years ago

i think its something to do with swig and not in arb