Time and State |
Category ID: 361 (Category) | Status: Incomplete |
Description Summary
Extended Description
Distributed computation is about time and state. That is, in order for more than one component to communicate, state must be shared, and all that takes time. Most programmers anthropomorphize their work. They think about one thread of control carrying out the entire program in the same way they would if they had to do the job themselves. Modern computers, however, switch between tasks very quickly, and in multi-core, multi-CPU, or distributed systems, two events may take place at exactly the same time. Defects rush to fill the gap between the programmer's model of how a program executes and what happens in reality. These defects are related to unexpected interactions between threads, processes, time, and information. These interactions happen through shared state: semaphores, variables, the file system, and, basically, anything that can store information.
Nature | Type | ID | Name | View(s) this relationship pertains to![]() |
---|---|---|---|---|
ChildOf | ![]() | 18 | Source Code | Development Concepts (primary)699 |
ParentOf | ![]() | 362 | Race Condition | Development Concepts (primary)699 |
ParentOf | ![]() | 364 | Signal Handler Race Condition | Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 367 | Time-of-check Time-of-use (TOCTOU) Race Condition | Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 371 | State Issues | Development Concepts (primary)699 |
ParentOf | ![]() | 376 | Temporary File Issues | Development Concepts (primary)699 Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 377 | Insecure Temporary File | Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 380 | Technology-Specific Time and State Issues | Development Concepts (primary)699 |
ParentOf | ![]() | 382 | J2EE Bad Practices: Use of System.exit() | Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 383 | J2EE Bad Practices: Direct Use of Threads | Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 384 | Session Fixation | Development Concepts (primary)699 Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 385 | Covert Timing Channel | Development Concepts (primary)699 |
ParentOf | ![]() | 386 | Symbolic Name not Mapping to Correct Object | Development Concepts (primary)699 |
ParentOf | ![]() | 387 | Signal Errors | Development Concepts (primary)699 |
ParentOf | ![]() | 412 | Unrestricted Externally Accessible Lock | Development Concepts (primary)699 Seven Pernicious Kingdoms (primary)700 |
ParentOf | ![]() | 557 | Concurrency Issues | Development Concepts (primary)699 |
ParentOf | ![]() | 609 | Double-Checked Locking | Development Concepts (primary)699 |
ParentOf | ![]() | 613 | Insufficient Session Expiration | Development Concepts (primary)699 |
ParentOf | ![]() | 662 | Insufficient Synchronization | Development Concepts (primary)699 |
ParentOf | ![]() | 663 | Use of a Non-reentrant Function in an Unsynchronized Context | Development Concepts (primary)699 |
ParentOf | ![]() | 664 | Improper Control of a Resource Through its Lifetime | Development Concepts (primary)699 |
ParentOf | ![]() | 668 | Exposure of Resource to Wrong Sphere | Development Concepts (primary)699 |
ParentOf | ![]() | 669 | Incorrect Resource Transfer Between Spheres | Development Concepts (primary)699 |
ParentOf | ![]() | 672 | Operation on a Resource after Expiration or Release | Development Concepts (primary)699 |
ParentOf | ![]() | 673 | External Influence of Sphere Definition | Development Concepts (primary)699 |
ParentOf | ![]() | 674 | Uncontrolled Recursion | Development Concepts (primary)699 |
ParentOf | ![]() | 698 | Redirect Without Exit | Development Concepts (primary)699 |
MemberOf | ![]() | 700 | Seven Pernicious Kingdoms | Seven Pernicious Kingdoms (primary)700 |
CAPEC-ID | Attack Pattern Name | (CAPEC Version: 1.4) |
---|---|---|
61 | Session Fixation |