Browse Prior Art Database

Concurrent creation of System V IPC Objects

IP.com Disclosure Number: IPCOM000219372D
Publication Date: 2012-Jun-26
Document File: 3 page(s) / 26K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is an efficient and reliable process for creating and opening System V Inter-Process Communication (IPC) objects.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 01 of 3

Concurrent creation of System V IPC Objects

System V Inter-Process Communication (IPC) provides UNIX* systems a standard means to communicate between and synchronize concurrent processes and threads. Due to the limitations of most System V implementations, errors can occur when attempting to open or create IPC objects. These errors can be very serious in nature and threaten overall application reliability , stability, and performance.

Critical examples of this problem include the following :
 An existing System V IPC object may be obtained when a new one is expected


 Two separate process may not be able to successfully obtain the same System V IPC objects required to enable communication


 Processes may obtain incorrect, or unexpected, IPC objects which can threaten their stability

Implementations of System V IPC's ftok() function generate object keys using a non-unique hash of the information needed to identify the file . Hash collisions can cause disastrous problems for programs expecting unique keys and System V IPC objects.

For example, some UNIX systems may construct the key as a 32-bit integer using [1 byte: supplied id][1 byte: device id][2 bytes: least significant bytes of files inode ], because only one byte of this key is user controlled the following problems can occur :

There is roughly a one in 64,000 chance two different files may produce the same key, when a unique one is desired. This is especially a problem with short - lived processes using System V.

The reuse of Inodes causes problems. For example, deleting the files used to create System V Objects may result in applications obtaining old objects instead of creating new ones. This problem occurs because file systems will re -use inodes from deleted file, when creating a new file. This could result in ftok () returning a key for an already existing IPC object, despite the fact a new file was passed to it.

There are no existing solution exists for this problem using System V .

To solve the problems created by System V, users modify how they open and...