Are these Valgrind warnings (from std.array and std.csv) worry-some, or how to fix them?
mw
m at g.c
Fri Jul 21 16:38:12 UTC 2023
I'm trying to debug a problem, but saw these Valgrind warnings
(from std.array and std.csv):
==1676==
==1676== Warning: invalid file descriptor -1 in syscall close()
==1676== Warning: invalid file descriptor -1 in syscall close()
==1676== Conditional jump or move depends on uninitialised
value(s)
==1676== at 0x11149E3:
core.internal.gc.impl.conservative.gc.Gcx.sweep() (in ./lt)
==1676== by 0x11162BE:
core.internal.gc.impl.conservative.gc.Gcx.fullcollect(bool, bool,
bool) (in ./lt)
==1676== by 0x1114058:
core.internal.gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref
ulong, uint, const(TypeInfo)) (in ./lt)
==1676== by 0x111A024:
core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), core.internal.gc.impl.conservative.gc.mallocTime, core.internal.gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in ./lt)
==1676== by 0x1111ABD:
core.internal.gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, scope const(TypeInfo)) (in ./lt)
==1676== by 0x10891B6: gc_qalloc (in ./lt)
==1676== by 0x108C195: _aaGetX (in ./lt)
==1676== by 0x108BDA0: _aaGetY (in ./lt)
==1676== by 0xC30E5D:
std.csv.CsvReader!(immutable(char)[][immutable(char)[]], 1,
std.algorithm.iteration.joiner!(std.algorithm.iteration.FilterResult!(common._readDailyBarsFromCSV(immutable(char)[], ref long).__lambda9, std.stdio.File.ByLineImpl!(char, char).ByLineImpl).FilterResult, immutable(char)[]).joiner(std.algorithm.iteration.FilterResult!(common._readDailyBarsFromCSV(immutable(char)[], ref long).__lambda9, std.stdio.File.ByLineImpl!(char, char).ByLineImpl).FilterResult, immutable(char)[]).Result, dchar, immutable(char)[][]).CsvReader.prime() (csv.d:1182)
==1676== by 0xC30CFA:
std.csv.CsvReader!(immutable(char)[][immutable(char)[]], 1,
std.algorithm.iteration.joiner!(std.algorithm.iteration.FilterResult!(common._readDailyBarsFromCSV(immutable(char)[], ref long).__lambda9, std.stdio.File.ByLineImpl!(char, char).ByLineImpl).FilterResult, immutable(char)[]).joiner(std.algorithm.iteration.FilterResult!(common._readDailyBarsFromCSV(immutable(char)[], ref long).__lambda9, std.stdio.File.ByLineImpl!(char, char).ByLineImpl).FilterResult, immutable(char)[]).Result, dchar, immutable(char)[][]).CsvReader.popFront() (csv.d:1154)
...
==1676==
==1676== Warning: invalid file descriptor -1 in syscall close()
==1676== Use of uninitialised value of size 8
==1676== at 0x111BB96:
core.internal.gc.impl.conservative.gc.Gcx.mark!(false, true,
true).mark(core.internal.gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in ./lt)
==1676== by 0x1116AB5:
core.internal.gc.impl.conservative.gc.Gcx.markParallel(bool) (in
./lt)
==1676== by 0x1115FCF:
core.internal.gc.impl.conservative.gc.Gcx.fullcollect(bool, bool,
bool) (in ./lt)
==1676== by 0x1114058:
core.internal.gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref
ulong, uint, const(TypeInfo)) (in ./lt)
==1676== by 0x111A024:
core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), core.internal.gc.impl.conservative.gc.mallocTime, core.internal.gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in ./lt)
==1676== by 0x1111ABD:
core.internal.gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, scope const(TypeInfo)) (in ./lt)
==1676== by 0x10891B6: gc_qalloc (in ./lt)
==1676== by 0xD26B9B:
std.array.Appender!(immutable(char)[]).Appender.ensureAddable(ulong).__lambda9() (array.d:3576)
==1676== by 0xD26AB1:
std.array.Appender!(immutable(char)[]).Appender.ensureAddable(ulong) (array.d:3576)
==1676== by 0x954102:
std.array.Appender!(immutable(char)[]).Appender.put!(char[]).put(char[]).bigDataFun(ulong) (array.d:3679)
==1676== by 0x953FF8:
std.array.Appender!(immutable(char)[]).Appender.put!(char[]).put(char[]) (array.d:3682)
==1676== by 0x953FB5:
std.array.Appender!(immutable(char)[]).Appender.put!(dchar).put(dchar) (wchar_.d:38)
==1676==
==1676== Conditional jump or move depends on uninitialised
value(s)
==1676== at 0x111BBA3:
core.internal.gc.impl.conservative.gc.Gcx.mark!(false, true,
true).mark(core.internal.gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in ./lt)
==1676== by 0x1116AB5:
core.internal.gc.impl.conservative.gc.Gcx.markParallel(bool) (in
./lt)
==1676== by 0x1115FCF:
core.internal.gc.impl.conservative.gc.Gcx.fullcollect(bool, bool,
bool) (in ./lt)
==1676== by 0x1114058:
core.internal.gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref
ulong, uint, const(TypeInfo)) (in ./lt)
==1676== by 0x111A024:
core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), core.internal.gc.impl.conservative.gc.mallocTime, core.internal.gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in ./lt)
==1676== by 0x1111ABD:
core.internal.gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, scope const(TypeInfo)) (in ./lt)
==1676== by 0x10891B6: gc_qalloc (in ./lt)
==1676== by 0xD26B9B:
std.array.Appender!(immutable(char)[]).Appender.ensureAddable(ulong).__lambda9() (array.d:3576)
==1676== by 0xD26AB1:
std.array.Appender!(immutable(char)[]).Appender.ensureAddable(ulong) (array.d:3576)
==1676== by 0x954102:
std.array.Appender!(immutable(char)[]).Appender.put!(char[]).put(char[]).bigDataFun(ulong) (array.d:3679)
==1676== by 0x953FF8:
std.array.Appender!(immutable(char)[]).Appender.put!(char[]).put(char[]) (array.d:3682)
==1676== by 0x953FB5:
std.array.Appender!(immutable(char)[]).Appender.put!(dchar).put(dchar) (wchar_.d:38)
==1676==
I'm wondering if these warnings should be fixed, and how?
And in general: should the D std lib be Valgrind warning free?
Thanks.
More information about the Digitalmars-d
mailing list