Commit Graph

1273 Commits

Author SHA1 Message Date
fe9e25374a CampaignManager: initialize campaign member
Found by Coverity Scan, CID 25798.

Change-Id: Ib310ca3198c78a8e01d044d90ada1cd0c22b26d6
2015-02-07 17:29:29 +01:00
bae03bc929 cmake: build with -D__NO_MATH_INLINES
To use the new clang-based AspectC++ (ac++ >1.2), Fail* must be built
with -D__NO_MATH_INLINES (or --c_compiler clang++).

Change-Id: I020d62891946d09ac456b8df914b669ab33ab0e2
2015-02-05 17:25:09 +01:00
6995dffca8 prune-trace: --no-weighting for SamplingPruner
Analogous to the FESamplingPruner, the --no-weighting switch disables the
equivalence-class weighting by using a weight of one instead of the
equivalence-class size.  This is usually not a good idea, and should only
be used for demonstration purposes, or if the fault model requires
weight-less sampling.

The --no-weighting switch was introduced with an earlier commit, but
did not have an effect until now.

Change-Id: If2ebf775bea7f2e3f8c293abbae08f1eb00cacf1
2015-02-02 13:50:59 +01:00
1dcd4fbeb2 fail-cleanup-db.sh: cleanup "symbol" table as well
(The "symbol" is currently only created by some inofficial scripts,
but may become part of the Fail* core at some point.)

Change-Id: If0b3e6cdd6b6ca865abb67382de128e7a27f19ab
2015-01-30 13:28:33 +01:00
b8c03bca8d fail-env: assign -> use default values
In bash, ${parameter:=word} assigns the default value.  In our case,
${parameter:-word} (the whole expression has a default value, but it's
not assigned) suffices.

Change-Id: I5f4105b973892aa13943d660cbebaed76fd43752
2015-01-29 16:43:22 +01:00
412ecbba63 dbcampaign: skip existing pilots with wrong fspmethod
Loading existing pilots with a different fspmethod_id is a waste of
time.

Change-Id: I3519a14822029999fa2ed854daff9853c0cbeec1
2015-01-21 14:53:33 +01:00
d58694521c dbcampaign: don't include fspmethod/variant ID in job msg
These IDs don't make sense by themselves but only after a lookup in the
database, which clients usually don't have (and don't need) access to.

Conflicts:
	src/core/comm/DatabaseCampaignMessage.proto.in

Change-Id: Ice739463552039b7fb48581722ea2e05984cea47
2015-01-21 14:53:32 +01:00
c422911741 dbcampaign: allow wildcard for prune method
Using mixed pruning methods now does not require to run the campaign
server twice anymore.

Change-Id: I3f62c269166b750892bb0e659ad0c180425d1479
2015-01-21 14:53:32 +01:00
336ffd6453 Merge branch 'sampling'
Change-Id: Id6be7954b0bafcbfd64ba702e69e016bd2810115
2015-01-21 14:53:28 +01:00
39df0a979e Merge branch 'listener-perf-bug'
Change-Id: Ia863115ec31011ad2b7a954543c8ee64188d3d32
2015-01-21 14:52:33 +01:00
4cbcf30b7c prune-trace: incremental mode for SamplingPruner
The --incremental switch allows to add more samples if the resulting
confidence intervals are not satisfactory yet.

Change-Id: I65dc99522f45f8a4eaf4ce68e832f7636585381d
2015-01-21 00:22:36 +01:00
79211fd31d prune-trace: add SamplingPruner
The SamplingPruner implements "normal" sampling with equivalence-class
reuse.  Unlike the FESamplingPruner, the SamplingPruner implements
uniform fault-space sampling that counts multiple hits of an
equivalence class.

This change modifies the database schema, more specifically it adds
the "weight" column to the fspgroup table.  Update existing databases
with this query:

  ALTER TABLE fspgroup ADD COLUMN weight INT UNSIGNED;

Change-Id: I668fc9b25fc4d79a60aa1ef8d69cdf5fa076cc6d
2015-01-21 00:22:36 +01:00
99a923b11e Merge remote-tracking branch 'origin/master' into sampling-wip
Change-Id: Iae5c02be5801d75e8adc55222ccb35c559f7ebf4
2015-01-21 00:22:28 +01:00
f8e0f1bb3f util: add SumTree::iterator
Change-Id: I8304b64634fa3ab92a126fe5d942674b26334b3d
2015-01-21 00:17:48 +01:00
2f70e05db6 util: rename SumTree::get -> remove, add r/o get
SumTree::get now non-intrusively picks an element and returns a
reference to it, SumTree::remove removes and returns a copy.  The
former is needed for sampling with replacement.

Change-Id: Iefef2fdf0b7df6ea7a9949f2588528ec9e86bb7a
2015-01-21 00:17:48 +01:00
b0c58bab78 util: SumTree::add() documentation
This function copies the reference argument 'element' internally.

Change-Id: I33d94f224bc2b1b89057b90258d500eaa364ab85
2015-01-21 00:17:48 +01:00
f23860c139 prune-trace: use uint64_t for pilot counts
This enables using very large data sets in the FESamplingPruner.

Change-Id: Ibf097ed8cec24c85a74e83a78d79aa07893cfa8c
2015-01-21 00:17:48 +01:00
ed18399ff6 prune-trace: remove invalid assertion
This assertion in the FESamplingPruner is invalid if the import took
place without "write" ECs.

Change-Id: I7d1bbcf1572573e2ac97e9be1191fbf9fe61f755
2015-01-21 00:17:48 +01:00
57e4541190 prune-trace: do not sort ECs for sampling
Sorting is too costly for large data sets, and not worth the
sampling-process speedup.

Change-Id: I622ff3ed9b352fc5c7586f9733d830be727b6a11
2015-01-21 00:17:48 +01:00
b2b53380f4 prune-trace: add switch to disable sample weighting
In the sampling step, the --no-weighting switch disables the
equivalence-class weighting by using a weight of one instead of the
equivalence-class size.  This is usually not a good idea, and should
only be used for demonstration purposes, or if the fault model
requires weight-less sampling.

Change-Id: Id903d1924c6ecbcd217815aa5ce9271560130071
2015-01-21 00:14:45 +01:00
a1e3b31cd5 prune-trace: sample from known results
The --use-known-results switch simulates sampling (with fault
expansion, FESamplingPruner) by reusing results from a previous
campaign covering the full fault space (that used the "basic" pruner).
The pruner only creates entries in the "fspgroup" table that refer to
already existing pilots and corresponding results.

This switch is not for normal Fail* use, but only for experimenting
with the FESamplingPruner.

Change-Id: I1bf561d93f55918d243c5306551a1c6b48027198
2015-01-21 00:09:37 +01:00
d9028e9d70 CMake: Fail* version number handling fixed
The project version number is now not user-editable anymore, and
custom values get overwritten by force.  Without this change,
CMakeCache.txt stays at the version number it was first instantiated
from.

Change-Id: If9ad1549937dad98db9a0f0eda16ef752e7d74aa
2015-01-14 10:27:20 +01:00
fd6bd279ad Merge "util/DwarfReader: plug file-descriptor leaks" 2015-01-14 10:27:01 +01:00
a00c4d9a69 util/DwarfReader: plug file-descriptor leaks
This change fixes several file-descriptor leaks in the DwarfReader
implementation.  The patch is taken from Richard Hellwig's not yet
merged change I161f626d12ca7f2b7b9d13ba9cbc254eb55692f1.  I did not
apply any white-space cleanups to prevent conflicts when Richard's
change will be merged later.

Change-Id: Icd9c1bdeeab39e77900e2ce88b756a8cf7ade96a
2015-01-14 10:15:29 +01:00
d68ea990ca sal: catch listener removal corner case
This change makes sure an active but not-yet fired listener does not fire
anymore if it gets removed.  In this case, the listener already has an
invalid index, but still needs to be copied to the delete list.

This issue has not been observed in the wild, and is unlikely to have
caused real problems in the past.

Change-Id: I8be8a5b1d4cdc783a092b93f34f33b969894e5da
2015-01-13 19:22:49 +01:00
c4d44aeb0c sal: fix watch/breakpoint perf implementation
This commit changes the entities in a ResultSet from listener indexes
(into ListenerManagers m_BufferList) to BaseListener pointers, as
ListenerManager::makeActive(BaseListener*) (called from
FastBreakpoints/Watchpoints.ah) may invalidate indexes temporarily
stored in a ResultSet.  The issue occurs when multiple breakpoints
(watchpoints) fire at the same time, and one added more recently than
the others occupies the largest index position in m_BufferList.

Although this issue is extremely rare and was only observed in a few
corner cases up to now, it may have falsified results in the past.

Change-Id: I7b788a06d412f15700ca75f56f2be5d3b78465fa
2015-01-13 19:22:49 +01:00
32e8a679b5 CMake: Fail* version number handling fixed
The project version number is now not user-editable anymore, and
custom values get overwritten by force.  Without this change,
CMakeCache.txt stays at the version number it was first instantiated
from.

Change-Id: If9ad1549937dad98db9a0f0eda16ef752e7d74aa
2015-01-13 14:48:22 +01:00
722715c01f fail-cleanup-db.sh: cleanup unused DB entries
This script removes dangling rows from the database, for example
'trace' entries with a variant_id not mentioned in the 'variants'
table, or result rows referencing a nonexistent 'fsppilot' entry.
IOW, this script enforces referential integrity as it would be
maintained by foreign key constraints (that can only be used with
InnoDB tables).

Change-Id: I4dce1e46277d470f8c3eca31447ca71f63c6353f
2015-01-12 16:45:38 +01:00
80da913264 README: publications update
Change-Id: I4794dbba1e1fc28398bd040a5ffbc4ff821e5a6c
2015-01-11 18:47:37 +01:00
88dff29415 Merge branch 'visualfail' 2015-01-10 00:49:52 +01:00
62c3cc7f20 visualfail: README, pristine configuration
Change-Id: Ic7e3ec0e28fdd368b9207c7a843a3f397e5e3c09
2015-01-09 15:00:03 +01:00
f0a4dacd87 visualfail: remove common path prefix from file names
Change-Id: I5806f0e4ca3ebe4e9aae3423e04d8ffb36fff2a6
2015-01-09 15:00:03 +01:00
be6e4e687c visualfail: indentation fixes
Change-Id: Icac5dcf43ae28fa877a7127495066f4d48186b7e
2015-01-09 15:00:02 +01:00
4d070c6362 visualfail: collapse repeating instructions
Change-Id: I7d3bbb9eb79b502acabeeeab9886bf20177e68c6
2015-01-08 16:24:53 +01:00
957f9c9357 visualfail: high-level code mapping fixes and cleanups
Now high-level to low-level code mapping seems to be right for the first
time.

Change-Id: I3c6a7cfdf3f3e4da32420a74280ae4ae042acc09
2015-01-08 15:06:58 +01:00
d536cc72aa visualfail: less duplicate HTML IDs
... and a lot less unneeded IDs, reducing the amount of data to be
transferred to the client.

Change-Id: I071920fd4d8039d2f3d1f5d8c41c2c3ddd639617
2015-01-08 15:06:58 +01:00
874e5881b7 visualfail: disable JS debugging output
Change-Id: I8154aa182189ce88716d157aa41cbe2680f0eab8
2015-01-08 15:06:58 +01:00
2ae7e87abc visualfail: HTML output cleanups
Change-Id: Ibe966e8ece80f0f40f2f109d78a59f4ebe0121a6
2015-01-08 15:06:58 +01:00
38641ff34b visualfail: silence redundant notice
Change-Id: Ib6a71474727fd64d4057db026eb0e90e603947a0
2015-01-08 15:06:58 +01:00
aebe801dbf visualfail: query parameter name consistency
Consistently use 'variant_id' instead of 'variant'.

Change-Id: I93f054634698855687e3ba07b83173c8370297fd
2015-01-08 15:06:58 +01:00
c2b4a4fa8a visualfail: English interface
Change-Id: I4ebe88ce8621bcef30d84065b8e6525239283863
2015-01-08 15:06:58 +01:00
b5c261d762 visualfail: comments, whitespace fixes
Change-Id: I8821b43d7402e19c59810692ed7877bca4cec6f5
2015-01-08 15:06:58 +01:00
7c51ca0a63 visualfail: fix color coding
Change-Id: If76d8e9f7a22523868ea6977db5c0f58a0576224
2015-01-06 17:11:29 +01:00
2d2e477ddc visualfail: fix output formatting
This change fixes occasional redundant newlines in interspersed
ASM/highlevel code.

Change-Id: Ibe3a93d67bc017ce44c832c4948f3817d8f7e695
2015-01-06 17:11:29 +01:00
9df01a4a48 visualfail: off-by-one in getHighlevelCode()
This one omitted mappings to the first static instruction belonging to a
high-level source-code line.

Change-Id: I14427021e61f27a8b029fb56fad2ba813652422a
2015-01-06 17:11:29 +01:00
1faa885cb4 visualfail: speedup of two MySQL queries
Change-Id: Ibc4339cfe31a7d9f2a632a7e08278f8aca554a73
2015-01-06 17:11:29 +01:00
63670e7bce visualfail: off-by-one in resultsDB()
This one was responsible for a lot of notices in the terminal.

Change-Id: I097705af15d771d0dcb5a217445fec3db89fd132
2015-01-06 16:38:47 +01:00
42773e2be5 visualfail: speedup by using the ".=" operator
Using "$x .= $y" instead of "$x = $x . $y" is actually an extreme
speedup for long $x.  I had no idea PHP's "compiler" was that bad and
doesn't optimize this.

Change-Id: I39aec5f14f45b75a2467d8074b5ea2ffe5d4b856
2015-01-06 16:37:21 +01:00
fc8ad04db2 visualfail: increase default runtime limit to 10m
Change-Id: I9bdebb2ad0e4fd6cf0d5e72e2e0520ad3cf6b258
2015-01-06 16:37:15 +01:00
4575da411a visualfail: quote string array indexes
Change-Id: I943c931f256986b4c14e00ee278976d369c71765
2015-01-06 16:37:07 +01:00