CUBRID Engine  latest
fault_injection.h File Reference
#include "error_manager.h"
#include "thread_compat.hpp"
Include dependency graph for fault_injection.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fi_test_item
 

Macros

#define FI_INSERTED(code)   fi_test_on(code)
 
#define FI_SET(th, code, state)   fi_set(th, code, state)
 
#define FI_RESET(th, code)   fi_reset(th, code)
 
#define FI_TEST(th, code, state)   fi_test(th, code, NULL, state, ARG_FILE_LINE)
 
#define FI_TEST_ARG(th, code, arg, state)   fi_test(th, code, arg, state, ARG_FILE_LINE)
 
#define FI_INIT_STATE   0
 

Typedefs

typedef int(* FI_HANDLER_FUNC) (THREAD_ENTRY *thread_p, void *arg, const char *caller_file, const int caller_line)
 
typedef struct fi_test_item FI_TEST_ITEM
 

Enumerations

enum  FI_TEST_CODE {
  FI_TEST_NONE = 0, FI_TEST_HANG = 1, FI_TEST_FILE_IO_FORMAT = 100000, FI_TEST_DISK_MANAGER_VOLUME_ADD = 100001,
  FI_TEST_DISK_MANAGER_VOLUME_EXPAND = 100002, FI_TEST_FILE_IO_WRITE_PARTS1 = 100003, FI_TEST_FILE_IO_WRITE_PARTS2 = 100004, FI_TEST_FILE_MANAGER_UNDO_TRACKER_REGISTER = 200000,
  FI_TEST_BTREE_MANAGER_RANDOM_EXIT = 300000, FI_TEST_BTREE_MANAGER_PAGE_DEALLOC_FAIL = 300001, FI_TEST_LOG_MANAGER_RANDOM_EXIT_AT_RUN_POSTPONE = 500000, FI_TEST_LOG_MANAGER_RANDOM_EXIT_AT_END_SYSTEMOP = 500001
}
 
enum  FI_GROUP_CODE { FI_GROUP_NONE = 0, FI_GROUP_RECOVERY = 1, FI_GROUP_MAX = FI_GROUP_RECOVERY }
 

Functions

int fi_thread_init (THREAD_ENTRY *thread_p)
 
int fi_thread_final (THREAD_ENTRY *thread_p)
 
int fi_set (THREAD_ENTRY *thread_p, FI_TEST_CODE code, int state)
 
int fi_set_force (THREAD_ENTRY *thread_p, FI_TEST_CODE code, int state)
 
void fi_reset (THREAD_ENTRY *thread_p, FI_TEST_CODE code)
 
int fi_test (THREAD_ENTRY *thread_p, FI_TEST_CODE code, void *arg, int state, const char *caller_file, const int caller_line)
 
int fi_state (THREAD_ENTRY *thread_p, FI_TEST_CODE code)
 
bool fi_test_on (FI_TEST_CODE code)
 

Variables

FI_TEST_CODEfi_Groups [FI_GROUP_MAX+1]
 

Macro Definition Documentation

#define FI_INIT_STATE   0

Definition at line 91 of file fault_injection.h.

Referenced by fi_reset(), fi_state(), and fi_thread_init().

#define FI_INSERTED (   code)    fi_test_on(code)

Definition at line 34 of file fault_injection.h.

Referenced by pwrite_with_injected_fault().

#define FI_RESET (   th,
  code 
)    fi_reset(th, code)

Definition at line 36 of file fault_injection.h.

Referenced by btree_delete_internal().

#define FI_SET (   th,
  code,
  state 
)    fi_set(th, code, state)

Definition at line 35 of file fault_injection.h.

Referenced by btree_delete_internal().

#define FI_TEST_ARG (   th,
  code,
  arg,
  state 
)    fi_test(th, code, arg, state, ARG_FILE_LINE)

Definition at line 38 of file fault_injection.h.

Referenced by log_do_postpone(), and log_sysop_end_random_exit().

Typedef Documentation

typedef int(* FI_HANDLER_FUNC) (THREAD_ENTRY *thread_p, void *arg, const char *caller_file, const int caller_line)

Definition at line 94 of file fault_injection.h.

typedef struct fi_test_item FI_TEST_ITEM

Definition at line 96 of file fault_injection.h.

Enumeration Type Documentation

Enumerator
FI_GROUP_NONE 
FI_GROUP_RECOVERY 
FI_GROUP_MAX 

Definition at line 84 of file fault_injection.h.

Enumerator
FI_TEST_NONE 
FI_TEST_HANG 
FI_TEST_FILE_IO_FORMAT 
FI_TEST_DISK_MANAGER_VOLUME_ADD 
FI_TEST_DISK_MANAGER_VOLUME_EXPAND 
FI_TEST_FILE_IO_WRITE_PARTS1 
FI_TEST_FILE_IO_WRITE_PARTS2 
FI_TEST_FILE_MANAGER_UNDO_TRACKER_REGISTER 
FI_TEST_BTREE_MANAGER_RANDOM_EXIT 
FI_TEST_BTREE_MANAGER_PAGE_DEALLOC_FAIL 
FI_TEST_LOG_MANAGER_RANDOM_EXIT_AT_RUN_POSTPONE 
FI_TEST_LOG_MANAGER_RANDOM_EXIT_AT_END_SYSTEMOP 

Definition at line 48 of file fault_injection.h.

Function Documentation

void fi_reset ( THREAD_ENTRY thread_p,
FI_TEST_CODE  code 
)

Definition at line 287 of file fault_injection.c.

References fi_code_item(), FI_INIT_STATE, NULL, and fi_test_item::state.

int fi_set ( THREAD_ENTRY thread_p,
FI_TEST_CODE  code,
int  state 
)
int fi_set_force ( THREAD_ENTRY thread_p,
FI_TEST_CODE  code,
int  state 
)
int fi_test ( THREAD_ENTRY thread_p,
FI_TEST_CODE  code,
void *  arg,
int  state,
const char *  caller_file,
const int  caller_line 
)
bool fi_test_on ( FI_TEST_CODE  code)
int fi_thread_final ( THREAD_ENTRY thread_p)

Definition at line 146 of file fault_injection.c.

References assert, ER_FAILED, free_and_init, NO_ERROR, NULL, and thread_get_thread_entry_info().

Referenced by cubthread::entry::clear_resources().

Here is the caller graph for this function:

int fi_thread_init ( THREAD_ENTRY thread_p)

Variable Documentation

FI_TEST_CODE* fi_Groups[FI_GROUP_MAX+1]

Definition at line 81 of file fault_injection.c.

Referenced by sysprm_final().