sion_seek: unitialized variables
wir stellen gerade lese Probleme fest und sind jetzt soweit, das es wohl nicht initialisierte variablen in SION sind. Ein run mit den SION MPI tools unter valgrind zeitgt folgendes:
$ mpirun -np 1 ./test-sion-writer-mpi test-trace-parallel-sion-1.0 1 0
$ mpirun -np 1 valgrind ./test-sion-reader-mpi test-trace-parallel-sion-1.0 1
sion_generic_paropen_mapped( aid=0, fname="test-trace-parallel-sion-1.0", mode="br", numfiles=&, global, grank=0, gsize=1, nlocaltasks=1, globalranks=[], chunksizes=&[], mapping_filenrs=&[], mapping_lranks=&[], fsblksize=&, fp=NULL ) sion_generic_paropen_mapped( ..., grank=0, gsize=1, ..., globalranks[0]=0, ... ) ==1196== Conditional jump or move depends on uninitialised value(s) ==1196== at 0x409E7C: _sion_paropen_mapped_generic (sion_generic_mapped.c:672) ==1196== by 0x406835: sion_generic_paropen_mapped (sion_generic.c:566) ==1196== by 0x404696: main (test-sion-reader-mpi.c:91) ==1196== sion_generic_paropen_mapped( ..., grank=0, gsize=1, ... ) = ( sid=1, numfiles=1, fsblksize=-1 ) sion_generic_paropen_mapped( ..., grank=0, gsize=1, ... ) = ( chunksizes[0]=1048576, mapping_filenrs[0]=0, mapping_lranks[0]=0 ) sion_seek( 1, 0, SION_CURRENT_CHUNK, SION_CURRENT_POS ) sion_seek( 1, 0, SION_CURRENT_CHUNK, SION_CURRENT_POS ) = 1 sion_fread( 0xb46ee80, 1048576, 1, 1 ) sion_fread( 0xb46ee80, 1048576, 1, 1 ) = 1 sion_seek( 1, 0, SION_CURRENT_CHUNK, SION_CURRENT_POS ) sion_seek( 1, 0, SION_CURRENT_CHUNK, SION_CURRENT_POS ) = 1 sion_fread( 0xb46ee80, 1048576, 1, 1 ) sion_fread( 0xb46ee80, 1048576, 1, 1 ) = 1
Der Fehler äußert sich dann durch einen error im seek (die Ausgabe kommt von einem Linux wo der Fehler auftritt):
[OTF2] src/otf2_file_sion.c:210: sion_seek( 1, 0, SION_CURRENT_CHUNK, SION_CURRENT_POS ) SION_ERROR_RETURN on rank -1, rc=0: sion_seek: parameter rank 0 (max. -1) out of range, aborting ...
und die Rückgabewerte von sion_generic_paropen_mapped() in chunksizes, mapping_filenrs, und mapping_lranks sind da dann auch bogus/random.