View Issue Details

IDProjectCategoryView StatusLast Update
0002327GNUnettesting librarypublic2012-11-05 18:34
ReporterBart Polot Assigned To 
PrioritynoneSeveritycrashReproducibilitysometimes
Status closedResolutionwon't fix 
Product VersionGit master 
Target Version0.9.4Fixed in Version0.9.4 
Summary0002327: Memory corruption in testing
Description[bart@saturn ~/svn/gnunet/src/nse]$ gdb .libs/lt-gnunet-nse-profiler --core core-ssh
GNU gdb (GDB) 7.4.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/bart/svn/gnunet/src/nse/.libs/lt-gnunet-nse-profiler...done.

warning: core file may not match specified executable file.
[New LWP 22753]

warning: Can't read pathname for load map: Input/output error.
Core was generated by `/home/bart/svn/gnunet/src/nse/.libs/lt-gnunet-nse-profiler -c nse_profiler_test'.
Program terminated with signal 6, Aborted.
#0 0x00007fd8dc44ac35 in raise () from /lib/libc.so.6
(gdb) bt full
#0 0x00007fd8dc44ac35 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x00007fd8dc44c0b8 in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x00007fd8de2b28d9 in GNUNET_abort () at common_logging.c:273
No locals.
#3 0x00007fd8dde88e00 in increment_outstanding_at_host (hostname=<optimized out>, pg=<optimized out>) at testing_group.c:5295
No locals.
#4 increment_outstanding_at_host (hostname=hostname@entry=0x11c93e40 "@~\322\024", pg=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at testing_group.c:5287
        pos = 0x0
#5 0x00007fd8dde88ed0 in schedule_shutdown_task (cls=0xd6d3430, tc=<optimized out>) at testing_group.c:6806
        peer_shutdown_ctx = 0xd6d3430
        shutdown_ctx = 0x14d27e40
        __FUNCTION__ = "schedule_shutdown_task"
#6 0x00007fd8de2d7fba in run_ready (ws=0xef3d00, rs=0xef3c70) at scheduler.c:602
        p = <optimized out>
        pos = 0xb7ff770
        tc = {reason = GNUNET_SCHEDULER_REASON_TIMEOUT, read_ready = 0xef3c70, write_ready = 0xef3d00}
#7 GNUNET_SCHEDULER_run (task=task@entry=0x7fd8de2d1680 <program_main>, task_cls=task_cls@entry=0x7fff3dfa1bd0) at scheduler.c:790
        rs = 0xef3c70
        ws = <optimized out>
        timeout = <optimized out>
        ret = <optimized out>
        shc_int = 0xefc010
        shc_term = 0xefc0c0
        shc_quit = 0xef5790
        shc_hup = 0xef5840
        shc_pipe = 0xefc170
        last_tr = 3509351
        busy_wait_warning = 0
        pr = 0xef3e30
        c = 0 '\000'
        __FUNCTION__ = "GNUNET_SCHEDULER_run"
#8 0x00007fd8de2d1da9 in GNUNET_PROGRAM_run2 (argc=<optimized out>, argc@entry=3, argv=argv@entry=0x7fff3dfa1e88, binaryName=binaryName@entry=0x403b75 "nse-profiler",
    binaryHelp=binaryHelp@entry=0x4041a8 "Measure quality and performance of the NSE service.", options=options@entry=0x604b80, task=task@entry=0x401830 <run>, task_cls=task_cls@entry=0x0, run_without_scheduler=run_without_scheduler@entry=0)
    at program.c:255
        cc = {args = 0x7fff3dfa1ea0, cfgfile = 0xef3e00 "nse_profiler_test.conf", task = 0x401830 <run>, task_cls = 0x0, cfg = 0xef1c20}
        path = <optimized out>
        loglev = 0x0
        logfile = 0x0
        ret = 3
        cnt = <optimized out>
        skew_offset = 140733193388033
        skew_variance = 140569423753584
        clock_offset = <optimized out>
        cfg = 0xef1c20
        defoptions = {{shortName = 99 'c', name = 0x7fd8de2e8f47 "config", argumentHelp = 0x7fd8de2e8f4e "FILENAME", description = 0x7fd8de2e8ff8 "use configuration file FILENAME", require_argument = 1,
            processor = 0x7fd8de2ca2f0 <GNUNET_GETOPT_set_string>, scls = 0x7fff3dfa1bd8}, {shortName = 104 'h', name = 0x7fd8de2e8f62 "help", argumentHelp = 0x0, description = 0x7fd8de2e8f57 "print this help", require_argument = 0,
            processor = 0x7fd8de2c9f90 <GNUNET_GETOPT_format_help_>, scls = 0x4041a8}, {shortName = 76 'L', name = 0x7fd8de2e8f67 "log", argumentHelp = 0x7fd8de2e8f6b "LOGLEVEL", description = 0x7fd8de2e9018 "configure logging to use LOGLEVEL",
            require_argument = 1, processor = 0x7fd8de2ca2f0 <GNUNET_GETOPT_set_string>, scls = 0x7fff3dfa1bb0}, {shortName = 108 'l', name = 0x7fd8de2e8f74 "logfile", argumentHelp = 0x7fd8de2e61be "LOGFILE",
            description = 0x7fd8de2e9040 "configure logging to write logs to LOGFILE", require_argument = 1, processor = 0x7fd8de2ca2f0 <GNUNET_GETOPT_set_string>, scls = 0x7fff3dfa1bb8}, {shortName = 118 'v', name = 0x7fd8de2e8f7c "version",
            argumentHelp = 0x0, description = 0x7fd8de2e8f84 "print the version number", require_argument = 0, processor = 0x7fd8de2c9f60 <GNUNET_GETOPT_print_version_>, scls = 0x7fd8de2e8f9d}}
        allopts = 0xef3c70
        gargs = 0x6 <Address 0x6 out of bounds>
        lpfx = 0xef3e20 "0", <incomplete sequence \357>
        spc = <optimized out>
#9 0x00007fd8de2d1f0a in GNUNET_PROGRAM_run (argc=argc@entry=3, argv=argv@entry=0x7fff3dfa1e88, binaryName=binaryName@entry=0x403b75 "nse-profiler", binaryHelp=binaryHelp@entry=0x4041a8 "Measure quality and performance of the NSE service.",
    options=options@entry=0x604b80, task=task@entry=0x401830 <run>, task_cls=task_cls@entry=0x0) at program.c:289
No locals.
#10 0x0000000000401714 in main (argc=3, argv=0x7fff3dfa1e88) at gnunet-nse-profiler.c:924
No locals.
(gdb) up 4
#4 increment_outstanding_at_host (hostname=hostname@entry=0x11c93e40 "@~\322\024", pg=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at testing_group.c:5287
warning: Source file is more recent than executable.
5287 increment_outstanding_at_host (const char *hostname,
(gdb) p hostname
$1 = 0x11c93e40 "@~\322\024"
(gdb)
Steps To ReproduceAs always, run nse-profiler
Additional InformationCorruption occurs since (testing_group.c:6805):

    if (peer_shutdown_ctx->daemon->hostname != NULL)
      increment_outstanding_at_host (peer_shutdown_ctx->daemon->hostname,
                                     shutdown_ctx->pg);

Is true. As the experiment is run locally, daemon->hostname should NEVER be != NULL. Adittionaly, the hostname is just garbage ($1 = 0x11c93e40 "@~\322\024").

The memory corruption causes testing to try to access the struct, but fails to find it and terminates on assert.
TagsNo tags attached.

Activities

Christian Grothoff

2012-05-11 00:44

manager   ~0005873

Changing priority to NONE as existing testing code will be largely abandoned soon.

Christian Grothoff

2012-09-15 21:03

manager   ~0006339

Setting to "won't fix" as old testing is obsolete and replaced by the new testbed API.

Issue History

Date Modified Username Field Change
2012-05-08 14:56 Bart Polot New Issue
2012-05-08 14:56 Bart Polot Status new => assigned
2012-05-08 14:56 Bart Polot Assigned To => Bart Polot
2012-05-11 00:44 Christian Grothoff Note Added: 0005873
2012-05-11 00:44 Christian Grothoff Priority urgent => none
2012-05-11 00:44 Christian Grothoff Assigned To Bart Polot =>
2012-05-11 00:44 Christian Grothoff Status assigned => confirmed
2012-09-15 21:03 Christian Grothoff Note Added: 0006339
2012-09-15 21:03 Christian Grothoff Status confirmed => resolved
2012-09-15 21:03 Christian Grothoff Resolution open => won't fix
2012-09-15 21:03 Christian Grothoff Fixed in Version => 0.9.4
2012-09-15 21:03 Christian Grothoff Target Version => 0.9.4
2012-11-05 18:34 Christian Grothoff Status resolved => closed