Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000221Rosetta[All Projects] Crashpublic2013-03-19 16:582013-03-21 15:09
Reporterrmoretti 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusnewResolutionopen 
PlatformOSOS Version
Product VersionTrunk 
Fixed in Version 
Summary0000221: Crashes on blank command line
DescriptionNo 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".)
Steps To ReproduceQuick 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).
Additional InformationSegmentation 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.
TagsNo tags attached.
Application(s) Affectedmany
Command Line Usedsee above
Developer Options
Fixed in SVN Version
Attached Files

- Relationships
related to 0000218resolvedrmoretti Seg fault in relax 
related to 0000200new When given a bad option on the command line print what is usually displayed with -help 

-  Notes
(0000187)
momeara (Attentive Developer)
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 (Administrator)
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 (Attentive Developer)
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 (Attentive Developer)
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.

- Issue History
Date Modified Username Field Change
2013-03-19 16:58 rmoretti New Issue
2013-03-19 17:02 rmoretti Relationship added related to 0000218
2013-03-19 18:59 momeara Note Added: 0000187
2013-03-20 08:59 smlewis Note Added: 0000188
2013-03-20 22:21 rmoretti Note Added: 0000197
2013-03-20 22:51 momeara Note Added: 0000198
2013-03-21 09:07 smlewis Relationship added related to 0000200


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker