MantisBT - Rosetta
View Issue Details
0000221Rosetta[All Projects] Crashpublic2013-03-19 16:582013-03-21 15:09
rmoretti 
 
normalminoralways
newopen 
Trunk 
 
many
see above
0000221: Crashes on blank command line
No programs should segfault or die with inscrutable errors when no flags (or just -database) are passed on the command line. (Actually that last bit should be "ever", but we'll start with "when no flags are passed".)
Quick and *very* dirty way to evaluate these for released applications from within python (in rosetta_source directory):

import os
exec(open("src/apps.src.settings").read())

for k in sources:
  for p in sources[k]:
    print "====", p, "===="
    os.system("./bin/%s.default.linuxgccrelease -database ../rosetta_database -overwrite > /dev/null"%p)

(you'll need to examine the ones that "fail" closely, as some may be exiting with reasonable error messages).
Segmentation Faults (definitely not good) in r54387 :

supercharge
antibody_assemble_CDRs
antibody_model_CDR_H3
fragment_picker
remodel
doug_dock_design_min_mod2_cal_cal
FloppyTail
hbs_design
oop_design
rna_database

There are many others that don't have useful information printed to stderr, though those may have helpful information printed to stdout.
No tags attached.
related to 0000218resolved rmoretti Seg fault in relax 
related to 0000200new  When given a bad option on the command line print what is usually displayed with -help 
Issue History
2013-03-19 16:58rmorettiNew Issue
2013-03-19 17:02rmorettiRelationship addedrelated to 0000218
2013-03-19 18:59momearaNote Added: 0000187
2013-03-20 08:59smlewisNote Added: 0000188
2013-03-20 22:21rmorettiNote Added: 0000197
2013-03-20 22:51momearaNote Added: 0000198
2013-03-21 09:07smlewisRelationship addedrelated to 0000200

Notes
(0000187)
momeara   
2013-03-19 18:59   
Once these apps have been fixed, can we make this "quick and *very* dirty script" into an integration test that tests all the compiled apps in bin?
(0000188)
smlewis   
2013-03-20 08:59   
I'll take care of FloppyTail.

Is fixing this per-app correct? Is there *any* application that can run with no flags, or with only -database? Should we catch this case at option system read time?
(0000197)
rmoretti   
2013-03-20 22:21   
I'd probably recommend that some time be spent on making the script a little less hacky (better program discovery, better execution launch) and figuring out what to do about the files it litters the directory with, but I don't have a fundamental objection to making it an integration test. The one concern is that the pass/fail evaluation isn't automatic - there's some judgement call involved, especially if you want it do more than just segfault/no segfault testing.

Fixing it per app - specifically, fixing the issue that's causing the segfaults - is certainly something that needs to be done. This particular case is more illustrative of brittleness in handling user input (e.g. what happens if a user forgets a flag, or supplies an empty PDB, etc.), rather than a specific use-case to consider.

Making a no flag run do something else (e.g. print the application help) might be something to consider, but it would be a separate issue from fixing the missing-flag brittleness.
(0000198)
momeara   
2013-03-20 22:51   
There's a thing called "fuzz testing" (http://en.wikipedia.org/wiki/Fuzz_testing [^]) that tries to induce crashes, by providing nonsensical inputs. I can imagine that this would turn up quite a few problems with Rosetta.