Nathan's Bug Report on Realization Globs

3 views
Skip to first unread message

Jonathan Clark

unread,
Dec 4, 2012, 9:38:55 AM12/4/12
to ducttap...@googlegroups.com
I've now ported a second workflow to ducttape—an amazing improvement!

However, I think I found a bug due to a decimal-valued parameter/branch point:

$ ducttape sst-lp.tape invalidate threshold WhichNu.0.1
ducttape 0.2.1
By Jonathan Clark
WARNING: Potential use of undefined variable: NUM_TYPES at task symmetrize
/share/mal2/nschneid/AQMAR/sstGraphs/sst-lp.tape:46

^
1 warnings
Have 25 previous workflow versions
No plans specified in workflow -- Using default one-off realization
plan: Each realization will have no more than 1 non-baseline branch
Finding tasks to be invalidated: threshold for realizations: Set(WhichNu.0.1)
Exception in thread "main" java.lang.RuntimeException: Realization
glob element must have exactly one dot to separate branch point and
branch: WhichNu.0.1
at ducttape.cli.RealizationGlob$$anonfun$2.apply(RealizationGlob.scala:25)
at ducttape.cli.RealizationGlob$$anonfun$2.apply(RealizationGlob.scala:22)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:33)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.WrappedArray.map(WrappedArray.scala:33)
at ducttape.cli.RealizationGlob.<init>(RealizationGlob.scala:22)
at Ducttape$$anonfun$7.apply(ducttape.scala:357)
at Ducttape$$anonfun$7.apply(ducttape.scala:357)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at Ducttape$.getVictims$1(ducttape.scala:357)
at Ducttape$.invalidate$1(ducttape.scala:415)
at Ducttape$$anonfun$main$6.apply(ducttape.scala:494)
at ducttape.cli.ErrorUtils$.ex2err(ErrorUtils.scala:59)
at Ducttape$.main(ducttape.scala:478)
at Ducttape.main(ducttape.scala)


It would be nice to be able to invalidate all realizations of a given
task in one go. I can't tell if this is supported due to the above.

-Nathan


--------


Yep, that's a bug. Either: 1) You shouldn't have been able to declare
a branch containing a period or 2) the realization glob parser is
broken. I'll check and get back to you.

However, it *is* possible to do many realizations or even tasks in one
go: These are in fact globs -- just make sure to single quote any glob
characters. Example: ducttape workflow.tape invalidate
'my_fine_task_*' '*'

You can use both ? and * as in standard globs. For now, you could even
replace "." with "?" and probably achieve the same result even with
this bug in play.

-Jon



----

Have an issue ticket: https://github.com/jhclark/ducttape/issues/135.
This will be fixed next time I push.

-Jon
Reply all
Reply to author
Forward
0 new messages