Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Assertion `(char *) aligned_storage + holder_size <= (char *)base_storage + base_allocation' failed.

Aperta
#384 4 commenti 3 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp, python

Direzione di ricerca

Inizia in libs/python/src/object/class.cpp, intorno alla logica di allocazione verso la riga 750, e verifica come l’aggiustamento -1 interagisce con l’allineamento ARM e le dimensioni dello storage. Riproduci l’asserzione su una piattaforma ARM e confrontala con il comportamento su x64. Il lavoro è completato quando è stato stabilito se il calcolo dell’allocazione è errato e questo è stato documentato oppure corretto con una validazione per entrambe le piattaforme.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Hi,

Many thanks for the great library!

We just migrated to boost 1.78 and start getting:

python3: libs/python/src/object/class.cpp:762: static void* boost::python::instance_holder::allocate(PyObject*, std::size_t, std::size_t, std::size_t): Assertion `(char *) aligned_storage + holder_size <= (char *)base_storage + base_allocation' failed.

on arm platform. On x64 everything works perfect.

I took a look into boost::python::instance_holder::allocate with debugger and see:

sizeof(alignment_marker_t) == 4
alignment == 4
holder_size == 16

so assertion is correct.

I'm a bit confused, why we need -1 at https://github.com/boostorg/python/blame/develop/src/object/class.cpp#L750?

Looking forward for your answer!

Lingua principale
C++
Stelle
537
Fork
223
Merge medio
11h 22m
PR unite (30g)
2

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di boostorg/python

Tutte le issue di boostorg/python

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.