PANIC: ASSERT(wIndex < wUsed) failed in file g:\build\inc\objarray.hpp

Settimana scorsa mi sono trovato di fronte ad un problema abbastanza strano.
Da un client Notes 9.01 aprendo una form e cercando di stamparla il client semplicemente si chiudeva .
La form in sé non aveva nulla di particolarmente complesse, non c’erano tabelle strane né nidificazioni o Dblookup che potevano far impazzire il client .
Però il client andava in crash.
La storia riferitami dagli utenti è che il problema era inizialmente saltuario ma che col tempo (qualche settimana) è andato peggiorando andando a toccare tutti i client dell’azienda.

Andando a verificare i file di debug creati da NSD scoprivo questo :

[3664:0002-1950] Thread=[3664:0002-1950]
[3664:0002-1950] Stack base=0x00EF69A0, Stack size = 23316 bytes
[3664:0002-1950] PANIC: ASSERT(wIndex < wUsed) failed at line 110 in file g:\build\inc\objarray.hpp

Che in effetti è un po’ poco per capire dov’era l’errore. Però con Google riuscivo a restringere parzialmente il campo di ricerca. E poi quel riferimento al disco G: (che non esisteva sul PC) era abbastanza fuorviante.

Come prima cosa ho scoperto che il disco G: non c’entra con il PC dell’utente :

The g:\build\inc\objarray.hpp is just the last drive that development recomplied the file on (i.e., they mapped a drive g: to the build files)

 

Poi seguendo altre tracce sparse mi sono concentrato su di una embedded view contenuta nella form che filtrava i contenuti per categoria.
A quel punto è bastato nasconderla dalla stampa per risolvere il problema.
Quello che ho potuto capire è che il numero di entry nella view embedded era aumentato in modo tale da render impossibile al client la loro gestione: questo sembra anche spiegare perchè all’inizio il problema fosse circoscritto per poi crescere ed espandersi : il numero di documenti contenuti nella vista stava crescendo sempre di più.
E’ quindi probabile anche che l’anomalia sia dovuta non solo ai documenti contenuti nella vista stessa ma alla struttura della vista , troppe categorie ed addirittura in un post che ho trovato si parla di fare attenzione al fatto che le colonne non abbiano un titolo (??) anche se questa parte non l’ho sperimentata.

In effetti ho avuto un po’ di fortuna in quanto i dati dell’embedded view non erano necessari nella stampa (si trattava solo di un formato di log) e quindi ho potuto eliminarli dalla stampa stessa. Lascio ad altre occasioni (se mai ci saranno) o ad altre persone l’approfondire questa parte.

Lotus Notes Domino