Out of memory error when compiling GnuPG 1.2.1 on AIX 5.2

Roberts, Iain I SITI-ITDGE12 iain.roberts at shell.com
Tue Apr 29 14:08:08 CEST 2003


 	I am trying to compile the latest source of GnuPG 1.2.1 on an AIX 5.2 server.  I also have a similar problem running GnuPG 1.2.1. compiled under AIX 5.1 on my AIX 5.2 server.
 
 	I get the following error consistently at different times and on different servers. 
 
 	At the suggestion of Mick Ohrberg I have used the following configure options which fixes another problem but not this one :
 
 	# CFLAGS="-g -O2 -mcpu=powerpc" ./configure --disable-asm
 
 	Here is the problem part of the output.
 	--------------------
 	  cat ./../doc/HACKING  ./../doc/DETAILS  ./../doc/FAQ     >plain-large
 	        ../g10/gpg --homedir . --quiet --yes --import ./pubdemo.asc      
 	gpg: WARNING: unsafe ownership on homedir "."
 	gpg: out of  memory while allocating 8192 bytes
 	make: 1254-004 The error code from the last command is 2.
 	 
 	 
 	Stop.
 	make: 1254-004 The error code from the last command is 1.
 	 
 	 
 	Stop.
 	make: 1254-004 The error code from the last command is 2.
 	 
 	 
 	Stop.
 	----------------------
 
 
 	I have also tried running gpg compiled on AIX 5.1 on my AIX 5.2 server.  t works OK except when trying to encrypt as root.  I get the following output fro truss.  I notice that the final error is the same as in the compile.
 
 	This is run with no /dev/random device created and no egd running (works OK for non-root users).
 
 	 # truss -t "lseek,close,statx,open" gpg -r edede -e /tmp/hello
 	statx("~/.gnupg", 0x2FF22868, 128, 010)         Err#2  ENOENT
 	statx("//.gnupg/options", 0x2FF22868, 128, 010) = 0
 	statx("//.gnupg", 0x2FF228E8, 128, 010)         = 0
 	open("//.gnupg/options", 0400000000)            = 3
 	close(3)                                        = 0
 	open("//.gnupg/secring.gpg", 0400000000)        = 3
 	close(3)                                        = 0
 	open("//.gnupg/pubring.gpg", 0400000000)        = 3
 	close(3)                                        = 0
 	open("//.gnupg/pubring.gpg", 0400000000)        = 3
 	open("//.gnupg/pubring.gpg", 0400000000)        = 4
 	open("//.gnupg/.#lk2000da18.pat0013.50520", 0400002401) = 5
 	close(5)                                        = 0
 	open("//.gnupg/trustdb.gpg", 0400000002)        = 5
 	open("/tmp/hello", 0400000000)                  = 6
 	open("/opt/freeware/share/locale/locale.alias", O_RDONLY) Err#2  ENOENT
 	open("/opt/gnupg121/usr/local/share/locale/en_US/LC_MESSAGES/gnupg.mo", O_RDONLY) Err#2  ENOENT
 	open("/opt/gnupg121/usr/local/share/locale/en/LC_MESSAGES/gnupg.mo", O_RDONLY) Err#2  ENOENT
 	open("/dev/tty", 0400000002)                    = 7
 	File `/tmp/hello.gpg' exists. Overwrite (y/N)? y
 	open("/tmp/hello.gpg", 0400001401)              = 8
 	open("/tmp/hello", 0400000000)                  = 9
 	open("//.gnupg/random_seed", 0400000000)        = 10
 	close(10)                                       = 0
 	close(10)                                       = 0
 	gpg: out of  memory while allocating 8192 bytes
 
 	----------------------------------------------------------------------------------------------
 
 	Here is what seems to be relevant part of the output from a full truss 
 
 	# truss gpg -r edede -e /tmp/hello                            
 	execve("/usr/local/bin/gpg", 0x2FF22B44, 0x2FF22B5C)  argc: 5
 
 	. . . . .
 
 	open("//.gnupg/random_seed", 0400000000)        = 10
 	fstatx(10, 0x2FF21400, 128, 010)                = 0
 	kread(10, " ë T í Õ ¹ ± L [ R * J ù".., 600)    = 600
 	close(10)                                       = 0
 	_getpid()                                       = 63010
 	times(0x2FF213A8)                               = 102946137
 	access("/dev/random", 04)                       Err#2  ENOENT
 	socket(1, 1, 0)                                 = 10
 	connext(10, 0x2FF212B8, 18)                     Err#2  ENOENT
 	close(10)                                       = 0> 
 	appgetrusage(0, 0x2FF21690)                     = 0
 	times(0x2FF21638)                               = 102946137
 	appgetrusage(0, 0x2FF21660)                     = 0
 	times(0x2FF21608)                               = 102946138
 	appgetrusage(0, 0x2FF21568)                     = 0
 	times(0x2FF21510)                               = 102946138
 	fstatx(6, 0x2FF217A8, 128, 010)                 = 0
 	kwrite(8, "85010E03   û Z9712 3 w Î".., 273)    = 273
 	appgetrusage(0, 0x2FF21590)                     = 0
 	times(0x2FF21538)                               = 102946149
 	kwrite(8, " Ò", 1)                              = 1
 	appgetrusage(0, 0x2FF214E8)                     = 0
 	times(0x2FF21490)                               = 102946149
 	appgetrusage(0, 0x2FF21580)                     = 0
 	times(0x2FF21528)                               = 102946149
 	sbrk(0x00010010)                                Err#12 ENOMEM
 	sbrk(0x00010010)                                Err#12 ENOMEM
 	sbrk(0x00004010)                                Err#12 ENOMEM
 	sbrk(0x00004010)                                Err#12 ENOMEM
 	sbrk(0x00003010)                                Err#12 ENOMEM
 	sbrk(0x00002010)                                Err#12 ENOMEM
 	sbrk(0x00002410)                                Err#12 ENOMEM
 	sbrk(0x00001810)                                Err#12 ENOMEM
 	sbrk(0x00002110)                                Err#12 ENOMEM
 	sbrk(0x00001610)                                Err#12 ENOMEM
 	sbrk(0x00002050)                                Err#12 ENOMEM
 	sbrk(0x00001550)                                Err#12 ENOMEM
	sbrk(0x00002020)                                Err#12 ENOMEM
 	sbrk(0x00001520)                                Err#12 ENOMEM
 	gpgkwrite(2, " g p g", 3)                               = 3
 	: kwrite(2, " :  ", 2)                          = 2
 	out of kwrite(2, " o u t   o f  ", 7)                   = 7
 	 memory while allocating kwrite(2, "   m e m o r y   w h i l".., 25)    = 25
 	8192kwrite(2, " 8 1 9 2", 4)                    = 4
 	 bytes
 	kwrite(2, "   b y t e s\n", 7)                  = 7
 	unlink("//.gnupg/.#lk2000da18.pat0013.63010")   = 0
 	kfcntl(1, F_GETFL, 0x2000607C)                  = 67108866
 	kfcntl(2, F_GETFL, 0x00000000)                  = 67108866
 	_exit(2)
 	 
 	---------------------------------------------------------------------------------------
 
 
 	Here is the truss output if /dev/urandom and /dev/random do exist
 
 	. . . . 
 
 	access("/dev/random", 04)                       = 0
 	access("/dev/random", 04)                       = 0
 	open("/dev/urandom", 0400000000)                = 10
 	fstatx(10, 0x2FF1FF80, 128, 010)                = 0
 	_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) (sleeping...)
 	_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) = 0
 	 
 	Not enough random bytes available.  Please do some other work to give
 	the OS a chance to collect more entropy! (Need kwrite(7, "\n N o t   e n o u g h  ".., 118)     = 118
 	16 more bytes)
 	kwrite(7, " 1 6   m o r e   b y t e".., 15)     = 15
 	kfcntl(7, F_GETFL, 0x2FF22FFC)                  = 67108866
 	_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) (sleeping...)
 	_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) = 0
 	_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) (sleeping...)
 	[CTRL-C at this point]
 
 	(Note : /dev/urandom does supply data which can be collected with dd).
 
 	Thanks,
 
	Iain Roberts 
      0xF59AA56D3
 




More information about the Gnupg-devel mailing list