All Projects → lujiefsi → CrashTuner

lujiefsi / CrashTuner

Licence: other
CrashTuner(SOSP2019)

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to CrashTuner

nats-account-server
A simple HTTP/NATS server to host JWTs for nats-server 2.0 account authentication.
Stars: ✭ 62 (+138.46%)
Mutual labels:  distributed-systems
open-box
Generalized and Efficient Blackbox Optimization System [SIGKDD'21].
Stars: ✭ 174 (+569.23%)
Mutual labels:  distributed-systems
ring-election
A node js library with a distributed leader/follower algorithm ready to be used
Stars: ✭ 92 (+253.85%)
Mutual labels:  distributed-systems
realtimemap-dotnet
A showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin.
Stars: ✭ 47 (+80.77%)
Mutual labels:  distributed-systems
privacy-preserving-primitives
primitives and protocols for implementing privacy preserving networks
Stars: ✭ 14 (-46.15%)
Mutual labels:  distributed-systems
Knowledge-Discovery-Agents
A Goal-Oriented Approach to Knowledge Discovery in Multi-Agent Systems
Stars: ✭ 38 (+46.15%)
Mutual labels:  distributed-systems
ex united
Easily spawn Elixir nodes (supervising, Mix configured, easy asserted / refuted) within ExUnit tests
Stars: ✭ 40 (+53.85%)
Mutual labels:  distributed-systems
road-to-orleans
This repository illustrates the road to orleans with practical, real-life examples. From most basic, to more advanced techniques.
Stars: ✭ 55 (+111.54%)
Mutual labels:  distributed-systems
Layr
A decentralized (p2p) file storage system built atop Kademlia DHT that enforces data integrity, privacy, and availability through sharding, proofs of retrievability, redundancy, and encryption, with smart-contract powered incentive scheme
Stars: ✭ 90 (+246.15%)
Mutual labels:  distributed-systems
elixir cluster
Distributed Elixir Cluster on Render with libcluster and Mix Releases
Stars: ✭ 15 (-42.31%)
Mutual labels:  distributed-systems
epaxos
A pluggable implementation of the Egalitarian Paxos Consensus Protocol
Stars: ✭ 39 (+50%)
Mutual labels:  distributed-systems
v6d
vineyard (v6d): an in-memory immutable data manager. (Project under CNCF)
Stars: ✭ 557 (+2042.31%)
Mutual labels:  distributed-systems
XLearning-GPU
qihoo360 xlearning with GPU support; AI on Hadoop
Stars: ✭ 22 (-15.38%)
Mutual labels:  distributed-systems
Raf
An Elixir library which implements the Raft consensus protocol
Stars: ✭ 33 (+26.92%)
Mutual labels:  distributed-systems
Saga
Saga pattern implementation in Kotlin build in top of Kotlin's Coroutines.
Stars: ✭ 24 (-7.69%)
Mutual labels:  distributed-systems
Distributed-System-Algorithms-Implementation
Algorithms for implementation of Clock Synchronization, Consistency, Mutual Exclusion, Leader Election
Stars: ✭ 39 (+50%)
Mutual labels:  distributed-systems
DTC
DTC is a high performance Distributed Table Cache system designed by JD.com that offering hotspot data cache for databases in order to reduce pressure of database and improve QPS.
Stars: ✭ 21 (-19.23%)
Mutual labels:  distributed-systems
Kites
🪁 A consistency, partition tolerance completed distributed KV store, implementation of the Raft distributed consensus protocol and Kotlin.
Stars: ✭ 41 (+57.69%)
Mutual labels:  distributed-systems
core
Microservice abstract class
Stars: ✭ 37 (+42.31%)
Mutual labels:  distributed-systems
reactive-pipes
A thin library around Reactive Extensions to simplify writing evented applications in C#.
Stars: ✭ 12 (-53.85%)
Mutual labels:  distributed-systems

CrashTuner

What is CrashTuner

CrashTuner is fault injection framework for distributed system.

What can you get from this project?

We provide two things here:

  1. We list all old bugs(include the bugs in k8s) and new bugs, we give the detail of each bug.
  2. we provide the artifact of CrashTuner(only jar files), see document. We give the detail of how to trigger each bug.

Old Bugs

All our studied bugs and their detail exists in old bugs, we also give the detail of our study about k8s, but is written in Chinese.

New bugs

In the below table, we give all new bugs found by CrashTuner. You can click the Bug Id to see the bug report and Patch to see the fixing, and Detail to see how to trigger the bug. In the detail, we only show a small code snippet, you can download the whole buggy project code(which can be found in bug report) for further understanding.

Some bugs are marked as "Duplicate" in its issue because they are fixed together with other issue, as the developer required.

Bug Id Priority Status Patch Detail Meta-info
YARN-9164 Critical Fixed YARN-9164-2.patch YARN-9164 NodeId
YARN-9165 Critical Fixed YARN-9164-2.patch YARN-9165 ContainerId
YARN-9193 Critical Fixed YARN-9194_6.patch YARN-9193 ContainerId
YARN-9238 Critical Fixed YARN-9238_3.patch YARN-9238 ApplicationId
YARN-9201 Critical Fixed YARN-9194_6.patch YARN-9201 ContainerId
YARN-8649 Critical Fixed YARN-8649_5.patch YARN-8649 AppAttemptId
HBASE-22017 Critical Fixed pull-158 HBASE-22017 ServerName
HBASE-22041 Critical Unresolved - HBASE-22041 ServerName
HDFS-14216 Major Fixed HDFS-14216_6.patch HDFS-14216 DataNodeInfo
HDFS-14372 Major Fixed HDFS-14372_2.patch HDFS-14372 BPOfferService
HBASE-22050 Major Unresolved HBASE-22050.patch HBASE-22050 RegionInfo
YARN-9248 Major Fixed YARN-9248_5.patch YARN-9248 ContainerId
YARN-9194 Major Fixed YARN-9194_6.patch YARN-9194 ApplicationId
MR-7178 Major Unresolved MR-7178_1.patch MR-7178 TaskAttemptId
HBASE-21740 Major Fixed HBASE-21740.patch HBASE-21740 MetricsRegionServer
HBASE-22023 Trivial Unresolved master.patch HBASE-22023 MetricsRegionServer
YARN-8650 Major Fixed YARN-8331.002.patch YARN-8650 ContainerId
CASSANDRA-15131 Normal Unresolved PULL-322 CASSANDRA-15131 InetAddressAndPort

Reproduce

There are two ways to reproduce the bugs found by CrashTuner.

  1. We have written some unit tests in patches, you can change the source code to re-test them.
  2. We have provide a docker image to reproduce all new bugs, see document.
  3. We are working on reproducing old bugs and will add into git later.

Portability

Currently, we only apply CrashTuner on the distributed system that written in java, but we also investigate the distributed system written by other language, like K8s written in Golang. We find that CrashTuner can also help it improve the reliability. our studied bugs in k8s are in k8sbugs(sorry about the document is written in Chinese, English reader can click the URL in each document goto the corresponding issue) and we are implementing another version CrashTuner to detect them.

We believe that CrashTuner has good portability and we are doing large work on different distributed systems.

Others

How to determine the bug Priority?

JIRA has 5 level Priority: Blocker, Critical, Major(Cassandra is Normal), Minor and Trivial

When we create a bug issue, JIRA will assign a default Priority as "Major". If the origin developers think the bug has more serious affection, they will change the Priority as Critical or Blocker, like YARN-9194. Of course, some bugs' affections are not serious as we think, the origin developers will change their Priority as Minor or Trivial, like HBASE-22023.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].