[ISSUE] fatal error: found pointer to free object
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Empieza siguiendo las ejecuciones concurrentes de Databricks PUT y la ruta del error de rate-limit descrita en el issue; después inspecciona la referencia de reportZombies del runtime de Go en mgcsweep.go en busca de pistas sobre el objeto liberado. Una solución completa debería impedir que una carga fallida provoque errores fatales de puntero en otras goroutines, pero el issue no proporciona ninguna prueba reproducible ni ningún archivo fuente que ejecutar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Go
- Estrellas
- 53
- Forks
- 68
- Merge medio
- 1 d 2 h
- PR fusionados (30 d)
- 8
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de databricks/databricks-sql-go
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
databricks/databricks-sql-go#494 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 64/100
databricks/databricks-sql-go#490 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
databricks/databricks-sql-go#481 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
databricks/databricks-sql-go#480 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
databricks/databricks-sql-go#475 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de databricks/databricks-sql-go
Issues similares
-
Action Required: Fix Renovate ConfigurationPosiblemente ocupada @thompson-tomo la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
open-telemetry/opentelemetry-collector#16170 ·
Los mantenedores suelen responder en 1 día
-
automation awf compiler specifications
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
state:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
puppe1990/amarra-cais#342 ·
Los mantenedores suelen responder en 1 día
-
replay: a run cancelled during environment setup is logged as an ERROR (Instrument drops the cancellation)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día