ALT Linux kernel packages development
 help / color / mirror / Atom feed
* [d-kernel] shmctl: Invalid argument
@ 2003-12-09 14:29 Grigory Batalov
  2003-12-09 14:50 ` Dmitry V. Levin
  2003-12-09 14:55 ` Sergey Vlasov
  0 siblings, 2 replies; 5+ messages in thread
From: Grigory Batalov @ 2003-12-09 14:29 UTC (permalink / raw)
  To: devel-kernel

[-- Attachment #1: Type: text/plain, Size: 1100 bytes --]

Здравствуйте!

После переезда с ядра 2.4.20-alt10-smp на 2.4.22-std-smp-alt12
от программы amdump (пакет amanda) наблюдаются сообщения:

taper: FATAL shmctl: Invalid argument

Я просмотрел исходники taper, его манипуляции с памятью
можно упростить до прилагаемого файла.
Указанное сообщение соответствует коду в taper.c:

    if(shmid == -1) return;     /* nothing to destroy */
    if(shmctl(shmid, IPC_RMID, NULL) == -1) {
        error("shmctl: %s", strerror(errno));
    }

При запуске shmtest обычным пользователем видно, что память
выделяется и затем (через заданные 5 сек.) освобождается:

$ ipcs
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 262150     bga       700        1048576    1
<skip>

Однако, на ядре 2.4.20-alt10-smp программа завершается
молча, а на 2.4.22-std-smp-alt12 выходит сообщение:

./shmtest: : Unknown error 2339276

С чем это может быть связано?

На сервере два процессора, 2 Гб памяти, остальные пакеты -
из Мастера 2.2.

-- 
Григорий Баталов,
группа техподдержки
ОАО "Ковдорский ГОК"

[-- Attachment #2: shmtest.c --]
[-- Type: text/plain, Size: 774 bytes --]

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>

int main(void)
{
	int shmid = -1;
	char *result;
	
	shmid = shmget(IPC_PRIVATE, 1024*1024, IPC_CREAT|0700);

	if(shmid == -1) {
		error("shmget: %s", strerror(errno));
		exit(1);
	}

	result = (char *)shmat(shmid, NULL, 0);

	if(result == (char *)-1) {
		int save_errno = errno;
		if(shmctl(shmid, IPC_RMID, NULL) == -1) {
			error("shmctl: %s", strerror(errno));
		}

		errno = save_errno;
		error("shmat: %s", strerror(errno));
		exit(1);
	}

	sleep(5);
	
	if(shmctl(shmid, IPC_RMID, NULL) == -1) {
		error("shmctl: %s", strerror(errno));
		exit(1);
	}

	if(shmdt(result) == -1) {
		error("shmdt: %s", strerror(errno));
		exit(1);
	}

	exit(0);
}


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-12-11  9:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-09 14:29 [d-kernel] shmctl: Invalid argument Grigory Batalov
2003-12-09 14:50 ` Dmitry V. Levin
2003-12-09 14:55 ` Sergey Vlasov
2003-12-10  6:42   ` Grigory Batalov
2003-12-11  9:57     ` Denis Ovsienko

ALT Linux kernel packages development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
		devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
	public-inbox-index devel-kernel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git