[ISSUE] fatal error: found pointer to free object
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Bắt đầu bằng cách lần theo các lần thực thi Databricks PUT đồng thời và đường dẫn lỗi rate-limit được mô tả trong issue, sau đó kiểm tra tham chiếu Go runtime reportZombies trong mgcsweep.go để tìm manh mối về đối tượng đã được giải phóng. Một bản sửa lỗi hoàn chỉnh phải ngăn một lần tải lên thất bại gây ra các lỗi con trỏ nghiêm trọng trong các goroutine khác, nhưng issue không cung cấp bài kiểm thử có thể tái hiện hoặc tệp mã nguồn để chạy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
Our program is uploading parquet files to stages on different goroutines. Each goroutine is uploading to a different unity volume via PUT '{{.LocalFilePath}}' INTO '{{.UnityVolumePath}}' OVERWRITE; When one goroutine fails with a rate limit error, we non deterministically encounter a panic (and therefore crash of the program) from other concurrent goroutines with message fatal error: found pointer to free object. This panic was raised by the go runtime reportZombies function. Sometimes the error is also runtime: marked free object in span 0x7e6b8843ecd8, elemsize=48 freeindex=0 (bad use of unsafe.Pointer? try -d=checkptr). These errors are non deterministic as far as we can tell.
The stack trace confirms that goroutines running when the panic occurs are all Databricks PUT executions. All the other goroutines in the program are sleeping on channels and mutexes. We are also not running enough goroutines to trigger a rate limit on the bucket or Databricks. We're running on the order of 10 to 20 goroutines worth of uploads. The rate limit seems to be due to other traffic on the same bucket, unrelated to our program.
Reproduction
This is hard to outline with test code as its pretty coupled to a lot of other business logic we have and requires the underlying bucket of the unity volume to raise a rate limit.
Expected behavior
Expected behavior is that the other goroutines should succesfully upload their files regardless of the rate limit error on one of the other goroutines.
Is it a regression?
The code running on this deployment hasn't changed in a few months, including dependencies. So it is unlikely to be a regression.
Debug Logs
Here is the original error we got about the rate limit
staging operation over HTTP was unsuccessful: 503-<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ServerBusy</Code><Message>Operations per second is over the account limit.\nRequestId:[redacted]\nTime:2025-06-04T19:37:48.5111742Z</Message></Error>","time":"2025-06-04T19:37:48Z","message":"databricks: failed to execute query: query \n\tPUT '/tmp/1913351475.parquet' INTO '/Volumes/finance/[redacted]/invoice_pbrszrkigdtsnob_0_temp/1913351475.parquet' OVERWRITE
it appears to be a rate limit passed through by the underlying Azure storage account backing the unity volume.
Other Information
- OS: Debian (Bullseye)
- Versions:
- go 1.23.6
github.com/databricks/databricks-sql-go v1.6.1github.com/databricks/databricks-sdk-go v0.54.0
- Ngôn ngữ chính
- Go
- Star
- 53
- Fork
- 67
- Merge trung bình
- 1 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 8
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của databricks/databricks-sql-go
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
databricks/databricks-sql-go#494 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 64/100
databricks/databricks-sql-go#490 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
databricks/databricks-sql-go#481 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
databricks/databricks-sql-go#480 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
databricks/databricks-sql-go#475 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của databricks/databricks-sql-go
Issue tương tự
-
Action Required: Fix Renovate ConfigurationCó thể đã có người làm @thompson-tomo đã nhận hôm nay. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
open-telemetry/opentelemetry-collector#16170 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
automation awf compiler specifications
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
state:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
puppe1990/amarra-cais#342 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
replay: a run cancelled during environment setup is logged as an ERROR (Instrument drops the cancellation)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày