-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Go] Fatal Error in pqarrow.writeDenseArrow : invalid pointer #28
Comments
@lidavidm Any potential insights related to this from your recent work cleaning up pointers with CGO? |
I was looking at this, but the symptoms appear slightly different, so I wonder if it stems from the Parquet code somehow. Especially because this error explicitly blames a Parquet stackframe |
In the stacktrace there's another goroutine that's preempted during a call to Does this sound like it could be the case? There are some other explanations I'm exploring as well. |
It says explicitly that the invalid pointer is in that particular stack frame, though. I don't think |
How reproducible is this? If it's reliably reproducible then we should be able to debug it |
Can't reproduce on my side, this code has been running for hundreds of iterations without issue. |
@zeroshade I assume we'll just have to audit the code here similarly to other cases like this. |
@lidavidm yup. sounds like it. If it was reliably reproducible then it wasn't likely to be the garbage data issue like previously so I was holding out hope. I'll try to find some time today / tomorrow to go through the code there and see if anything stands out to me. It might be a good time to try to hook up using Pin and such instead of relying on malloc/calloc and the mallocator honestly. |
Hmm, yeah, though we still get "exposed" due to the C Data Interface |
right, we could basically make it so the |
Hmm, I wonder how polars is constructing / passing the stream of batches from the table.... and whether there's something there that's the problem? though that still feels like it's likely something in our cdata import code path.... |
Perhaps, but even then we should be guarding against things. I doubt Polars is deliberately inserting Go pointers into structures, so it could be a case of us needing to clear uninitialized memory again. |
@Niivii Is there any more context you can provide about this example? Specifically it would be helpful to see how |
Usual workflow if that helps: Snowflake table DDL is all 23 columns as varchar This is executed at night so the warehouse isn't heavily loaded + as you can see the amount of records is really light. |
Hello, another stacktrace of the issue happening again if that can help:
|
@Niivii is this still reproducible? If so, could you provide a reproducer for us that we can look into it further? |
I will bump our dataflow to the latest release and adbc driver 15 when it's out and let you know. |
Got a runtine error for this code in Python with polars and adbc engine to Snowflake:
Stacktrace:
Component(s)
Go
The text was updated successfully, but these errors were encountered: