Commit Graph

1249 Commits

Author SHA1 Message Date
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
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
9a34d7a78a visualfail: comment out checks for unneeded tables
The dbg_methods, dbg_variables and dbg_stacktrace tables are not
needed by the current VisualFAIL implementation.

Change-Id: I5f685c7d8100fe57fb2a23e1f8161770e64c9464
2015-01-06 16:37:01 +01:00
0ed1a4e306 visualfail: don't close MySQL connection too early
Luckily this didn't work as advertised, as the global connection
variable wasn't imported into the functions' scopes.

Change-Id: I080a32c6418deb3da3578987ec8a181b047608ad
2015-01-06 16:36:56 +01:00
1d81e2b519 visualfail: adminer should not be in the Fail* tree
Change-Id: Ib7f07306e297f8891666b54916e8076c0c9261ee
2015-01-06 16:36:50 +01:00
5bef0d4182 visualfail: whitespace cleanups
Change-Id: Ia773bf516ce1bab4adcd80e31678bda278cd8c11
2015-01-06 16:36:46 +01:00
ca99aee02b visualfail: removed trailing whitespace
Change-Id: I47725e1e4ca858109ffb0c3f7c599b67a48c0761
2015-01-06 16:36:38 +01:00
1d66db3625 visualfail: UNIX line endings
Change-Id: I5d26ec25d070e98b977ff3130c597a388a4c2c96
2015-01-06 16:36:20 +01:00
a3a77141f3 ezs-logger: Added missing dependency
There was a missing depenency to fail-util.

Change-Id: I32ea7f184affa6f95ea28d7254699872fd501a22
2014-12-16 16:36:37 +01:00
e83e87ecc7 DwarfReader: fixed linetable mapping
This change alters/corrects DwarfReader's way of determining the size of
linetable entries (i.e. their "range size"); the interface (e.g. to
ElfReader) stays the same. Prior to this, it was assumed that static
instructions within "the linetable" were sorted in ascending order. This
assumption turned out to be false, as every compilation unit's  header has
its own linetable and the compilation unit headers are not sorted by their
static instructions.
Furthermore this change implements normalization of file names.

Change-Id: Ia4beb7bf9cfb6f1a499aeebd01228335b70ab52d
2014-12-03 19:29:12 +01:00
bfd6a55f58 Fail* v1.0.1
This is a maintenance release primarily fixing docker demo builds.

Change-Id: I4f71ae9c50d29f36a9b6fd2ff11067b39f99c39d
v1.0.1
2014-11-14 11:13:26 +01:00
96ead7df84 scripts/docker: use ac++ 1.2 instead of daily build
Since the AspectC++ daily builds switched to the clang frontend, Fail*
doesn't build anymore.  Unless that changes, use the 1.2 release.

Change-Id: Ia7817c396dfabd3a10f0cf0ea6a8d4c1fb95365d
2014-11-14 11:08:47 +01:00
6e6148f701 client.sh: exit on any error status
This prevents the client script from continuously invoking
the fail-client when it is not executable, e.g., in the case
of missing libraries.

Change-Id: I2746eaf1980507dbd7c95fb5a6a1cc018a33aa67
2014-11-10 15:45:38 +01:00
36d9e77c96 import-trace: extend sanity checks to time1/2
Up to now, the sanity checks only tested equivalence classes
determined by dynamic instructions (instr1/instr2), although the
actual timing boundaries (time1/time2) have been the really relevant
information for quite some time now.  This change extends the checks
to time1/time2.

Change-Id: I53d1ed10684ff09f6b9f1245ef842dd0d85f2655
2014-11-07 11:40:53 +01:00
569dd3328b import-trace: sanity-check speedup
The sanity check testing whether the fault space is rectangular is
unnecessarily slow, as it joins the "trace" table without any reason,
and includes all variants instead of the currently imported one.

Change-Id: Icfe948290ec595209868952fc1639c979bd78d83
2014-11-07 11:37:49 +01:00
d30ffdd3e5 import-trace: sanity-check code deduplication
Change-Id: I098981dfe93d760e3a423a374be05dbad3ee9cc1
2014-11-07 11:29:50 +01:00
2f59d802fa Fail* v1.0 -- first public release
Change-Id: Ie8667a6d64a563d545a1ebb3375629214dd8b58a
v1.0
2014-11-03 13:10:12 +01:00
065d534735 Added README and Licensing information
Change-Id: I53301dedc4759186d637fb07bb214482851ecad7
2014-11-03 13:10:12 +01:00
6ab55a8359 scripts/docker: Added docker.io scripts to bootstrap a fail demo
The docker files provide containers with the full toolchain required to
build FAIL*. They also contain a demonstration FI campaign.

Change-Id: I280210eb0487718e82505f0343fa9303c21b8048
2014-11-03 13:10:11 +01:00
c00268242a Merge changes I7fe63611,I84ebbb50
* changes:
  util/DwarfReader, ElfImporter: import address ranges
  util/DwarfReader, ElfImporter: use unsigned addresses
2014-10-23 07:53:46 +02:00
b1b1108583 bochs-experiment-runner: -j option for parallel operation
Change-Id: I29e659da0892fdcfc170dccafa5917593e22776a
2014-10-22 19:07:47 +02:00
491312bb91 GenericExperiment: A standardized fault injection experiment
The GenericExperiment is a standard campaign+experiment pair. It is
derived from the DatabaseCampaign+DatabaseExperiment. Its experiment
endpoints are set on the command line, therefore it can be used to give
users a first impression of FAIL*. Currently it supports different
endpoints:

--trap: Catch all traps that occur and end the experiment
--timeout <N>: kill the experiment after N microseconds
--catch-write-text: detect writes on the text segment
--catch-write-outerspace: detect writes into nirvana
--{ok,fail,detected}-marker: groups of ELF symbols that are used as
     execution breakpoints

Change-Id: Idc7fcf8875953f1007e1a37bacb086eddd29cd10
2014-10-22 18:31:58 +02:00
d53c83d7c8 TimerListener: make timeout field changeable
An accessor for the m_Timeout field was missing.

Change-Id: Idf86a3da16a328c783613ed8502446d561f6287c
2014-10-22 18:31:57 +02:00
6ebd9b003a DatabaseExperiment: base class for distributed fail experiments
The DatabaseExperiment is a class a concrete experiment can inherit
from. It handles the communication with the campaign server. Does the
fast forward to the fault location, injects the fault and gives the
result over experiment outcome to the child class.

Change-Id: I1fb676da6c704cd570a638f0dfaadd4f1a9845e4
2014-10-22 17:30:07 +02:00
6bbb237bd9 resultbrowser: Do not hardcode result table
For the objdump retrieval, the result_VEZS.. was used. Instead of that
hardcoded string, the parameter should be used instead.

Change-Id: I757527bde2bb7ac0d4e98293b606ad8438cc76e4
2014-10-22 16:35:18 +02:00
0ba03ca97e cmake: Set PROTOBUF_IMPORT_DIRS in toplevel dir
The variable PROTOBUF_IMPORT_DIRS has to be set in the toplevel
CMakeLists.txt, since the import path has to be available for all .proto
files within all subdirectories. Without this addition, the
GenericExperiment will fail to compile.

Change-Id: I676e0abd83bd1c5d247afcd33e7522e72da3dc2f
2014-10-22 16:35:17 +02:00