View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003576||GNUnet||file-sharing service||public||2014-12-13 08:18||2018-06-07 00:25|
|Reporter||cy1||Assigned To||Christian Grothoff|
|Product Version||SVN HEAD|
|Target Version||0.11.0pre66||Fixed in Version||0.11.0pre66|
|Summary||0003576: gnunet-publish can't publish a sub-directory named "gnunet"|
|Description||When publishing a directory using gnunet-publish if a sub-directory is named "gnunet" (and only "gnunet" seems to do this) then instead of the directory being added to the gnunetdirectory as "gnunet", if you're lucky it is added as NULL, and shows up as such when you try gnunet-directory on the resulting gnunetdirectory. using gnunet-download -R -o something.gnd produces a 'something' directory, but the subdirectory within it named "gnunet" is given the name of its CHK instead. Any other files in "something" will retain their names and save as something/whatever.txt or the like.|
If you're unlucky, gnunet-publish just crashes unconditionally whenever it tries to publish a directory whose sub-directory is named "gnunet" and again, renaming that directory before publishing causes no problems or crashes.
|Steps To Reproduce||see attached shell script|
|Additional Information||$ gdb --args gnunet -V something/|
Preprocessing complete. Program received signal SIGSEGV, Segmentation fault. GNUNET_CONTAINER_meta_data_delete (md=0x0, type=EXTRACTOR_METATYPE_MIMETYPE, data=0x0, data_size=0) at container_meta_data.c:401 401 for (pos = md->items_head; NULL != pos; pos = pos->next) (gdb) bt #0 GNUNET_CONTAINER_meta_data_delete (md=0x0, type=EXTRACTOR_METATYPE_MIMETYPE, data=0x0, data_size=0) at container_meta_data.c:401 #1 0x0000000000402cea in get_file_information (item=0x608320) at gnunet-publish.c:520 #2 0x0000000000402d6c in get_file_information (item=0x608320) at gnunet-publish.c:538 #3 0x0000000000402e99 in directory_trim_complete ( directory_scan_result=0x608290) at gnunet-publish.c:566 #4 directory_scan_cb (cls=<optimized out>, filename=<optimized out>, is_directory=<optimized out>, reason=<optimized out>) at gnunet-publish.c:664 #5 0x00007ffff736a6cb in run_ready (ws=<optimized out>, rs=<optimized out>) at scheduler.c:595 #6 GNUNET_SCHEDULER_run (task=0x3, task_cls=0x60a530) at scheduler.c:817 #7 0x00007ffff736560a in GNUNET_PROGRAM_run2 (argc=<optimized out>, argv=0x605a90, binaryName=<optimized out>, binaryHelp=<optimized out>, options=<optimized out>, task=<optimized out>, task_cls=0x0, run_without_scheduler=0) at program.c:286 #8 0x00007ffff73658df in GNUNET_PROGRAM_run (argc=<optimized out>, argv=<optimized out>, binaryName=<optimized out>, binaryHelp=<optimized out>, options=<optimized out>, task=<optimized out>, task_cls=0x0) at program.c:325 ---Type <return> to continue, or q <return> to quit--- #9 0x0000000000401faf in main (argc=3, argv=0x605a90) at gnunet-publish.c:949
|Tags||No tags attached.|
gnunetfail.sh (592 bytes)
I've tried but failed to reproduce the issue (I can publish, and download, using the provided shell script).
Nevertheless, looking at the crash, I can see why there might be an NPE, and I've fixed that in SVN 34549.
However, that doesn't explain the 'NULL' name you get for the 'gnunet/' directory.
Please let me know to what extend the attached patch helps. As I cannot reproduce the issue, more information would be helpful.
||I'll give it a shot sure.|
||That fixed it, yeah.|
||NPE fixed the problem|
||That doesn't quite explain the behaviour you mentioned with the 'gnunet'-name specific stuff, or the name of the dir being 'NULL', or it being non-deterministic. As it was non-deterministic, maybe you can run it a few (100) times on your system to see if there is a 2nd issue? (and if so, re-open)? Thanks!|
|2014-12-13 08:18||cy1||New Issue|
|2014-12-13 08:18||cy1||File Added: gnunetfail.sh|
|2014-12-14 01:40||Christian Grothoff||Assigned To||=> Christian Grothoff|
|2014-12-14 01:40||Christian Grothoff||Status||new => assigned|
|2014-12-14 01:44||Christian Grothoff||Note Added: 0008678|
|2014-12-14 01:44||Christian Grothoff||Status||assigned => new|
|2014-12-14 01:44||Christian Grothoff||Status||new => feedback|
|2014-12-14 04:29||cy1||Note Added: 0008679|
|2014-12-14 04:29||cy1||Status||feedback => assigned|
|2014-12-14 08:56||cy1||Note Added: 0008680|
|2014-12-14 08:56||cy1||Note Added: 0008681|
|2014-12-14 08:56||cy1||Status||assigned => resolved|
|2014-12-14 08:56||cy1||Resolution||open => fixed|
|2014-12-14 12:24||Christian Grothoff||Note Added: 0008682|
|2014-12-14 12:24||Christian Grothoff||Fixed in Version||=> 0.11.0pre66|
|2014-12-14 12:24||Christian Grothoff||Target Version||=> 0.11.0pre66|
|2018-06-07 00:25||Christian Grothoff||Status||resolved => closed|