Dear PGI support,
my company recently bought a PGI license after some internal evaluations. I am happy about the compiler and the overall suite (especially OpenACC!!!). I personally did some tests by compiling my application using PGI 12.2. No problems. But the version we installed after getting the license is 12.3. At run-time, I have a error during I/O operation. GDB reports this:
[fspiga@gemini1 PW-AUSURF112]$ gdb …/espresso/bin/pw.x core.44246
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-50.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show copying”
and “show warranty” for details.
This GDB was configured as “x86_64-redhat-linux-gnu”.
For bug reporting instructions, please see:
…
Reading symbols from /ichec/home/staff/fspiga/QE/espresso/bin/pw.x…done.
[New Thread 44246]
Missing separate debuginfo for
Try: yum --disablerepo=‘’ --enablerepo='-debuginfo’ install /usr/lib/debug/.build-id/15/aeeb89cdee58e81ee8e0ccc5f7c79dac280dcf
Reading symbols from /lib64/libpthread.so.0…(no debugging symbols found)…done.
[Thread debugging using libthread_db enabled]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/librt.so.1…(no debugging symbols found)…done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /lib64/libm.so.6…(no debugging symbols found)…done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libc.so.6…(no debugging symbols found)…done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2…(no debugging symbols found)…done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `…/espresso/bin/pw.x -input ausurf_gamma.in’.
Program terminated with signal 11, Segmentation fault.
#0 0x000000351347a7cd in realloc () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6_2.5.x86_64
(gdb) debuginfo-install glibc-2.12-1.47.el6_2.5.x86_64
Undefined command: “debuginfo-install”. Try “help”.
(gdb) bt
#0 0x000000351347a7cd in realloc () from /lib64/libc.so.6
#1 0x0000000001d8571a in fr_init ()
#2 0x0000000001d81919 in pgf90io_fmtr_init2003 ()
#3 0x0000000000825b26 in iotk_getline_x (unit=4,
line=’ ’ , ‘\000’ , ‘?\004\000\000\000\000\000\000???’, ‘\000’ , ‘?\017\000\000\000\000\000\000<PP_INFO>’, ’ ’ , ‘\000’ , ‘?=\016??\177\000\000?\a?\001’, ‘\000’ , ’ E\016??\177\000\000\004J\020??\177\000\000?"n\002\000\000\000\0000?\016??\177\000\000???\001’, ‘\000’ , ’ E\016??\177\000\000TA\016??\177\000\000?"n\002’, ‘\000’ , ‘tE\016??\177\000\0000C\016??\177\000\000i??’…, length=2305, ierr=0) at ./iotk_scan.F90:1016
#4 0x0000000000824562 in iotk_scan_tag_x (unit=4, direction=1, control=0, tag=’ ’ , binary=.FALSE., stream=.FALSE., ierr=0) at ./iotk_scan.F90:670
#5 0x0000000000825466 in iotk_scan_x (unit=4, direction=1, control=2, name=‘PP_INFO\000’, ’ ’ , ‘\000’,
attr=‘\000’ , ‘v\222?\0225’, ‘\000’ , ‘?R\017??\177\000\000\000\000\000\000\000\000\000\000v\222?\0225\000\000\000\006\000\000\000\000\000\000\000\020S\017??\177\000\000fII"\000\000\000\000\020S\017??\177\000\000\006\000\000\000\000\000\000\000H?\022\026?*\000\000o<\224|\000\000\000\000\207\233?\0225’, ‘\000’ , ‘<\eD\0235\000\000\000/\000\000\0005\000\000\00003@\0235’, ‘\000’ , ‘\220T\017??\177\000\000H<@\0235\000\000\000??@\0235’, ‘\000’ , ‘\210\021?\0225\000\000\000H?U\0235\000\000\000\b?’…, binary=.FALSE., stream=.FALSE., found=.FALSE., ierr=0) at ./iotk_scan.F90:898
#6 0x0000000000822ff5 in iotk_scan_end_x (unit=4, name=‘PP_INFO\000’, ’ ’ , dummy=Cannot access memory at address 0x0
) at ./iotk_scan.F90:331
#7 0x000000000081cb6c in iotk_close_read_x (unit=4, dummy=Cannot access memory at address 0x0
) at ./iotk_files.F90:832
#8 0x000000000065b385 in read_upf_v2_module::read_upf_v2 (u=4, upf=Asked for position 0 of stack, stack only has 0 elements on it.
) at ./read_upf_v2.F90:56
#9 0x00000000006930f7 in upf_module::read_upf (upf=Asked for position 0 of stack, stack only has 0 elements on it.
) at ./upf.F90:64
#10 0x000000000064cf0a in read_pseudo_mod::readpp (input_dft=‘none’, ’ ’ , printout=Cannot access memory at address 0x0
) at ./read_pseudo.F90:150
#11 0x0000000000435018 in iosys () at ./input.F90:1267
#12 0x000000000040331a in pwscf () at ./pwscf.F90:53
#13 0x00000000004031f4 in main ()
#14 0x000000351341ecdd in __libc_start_main () from /lib64/libc.so.6
#15 0x00000000004030e9 in _start ()
Into detail, frame #3
(gdb) frame 3
#3 0x0000000000825b26 in iotk_getline_x (unit=4,
line=’ ’ , ‘\000’ , ‘?\004\000\000\000\000\000\000???’, ‘\000’ , ‘?\017\000\000\000\000\000\000<PP_INFO>’, ’ ’ , ‘\000’ , ‘?=\016??\177\000\000?\a?\001’, ‘\000’ , ’ E\016??\177\000\000\004J\020??\177\000\000?"n\002\000\000\000\0000?\016??\177\000\000???\001’, ‘\000’ , ’ E\016??\177\000\000TA\016??\177\000\000?"n\002’, ‘\000’ , ‘tE\016??\177\000\0000C\016??\177\000\000i??’…, length=2305, ierr=0) at ./iotk_scan.F90:1016
1016 read(unit,“(a)”,iostat=iostat,eor=1,size=buflen,advance=“no”) buffer
(gdb) list
1011 logical :: eor
1012 pos = 0
1013 ierrl=0
1014 do
1015 eor = .true.
1016 read(unit,“(a)”,iostat=iostat,eor=1,size=buflen,advance=“no”) buffer
1017 3 continue
1018 eor = .false.
1019 if(iostat/=0) then
1020 call iotk_error_issue(ierrl,“iotk_getline”,“iotk_scan.f90”,964)
My first attempt to understand the problem was
(gdb) print unit
$2 = 4
and the PGI Fortran Reference Guide at page 336 reports
Logical units 5 (stdin) and 6 (stdout) are line buffered. Logical unit 0 (stderr) is unbuffered. Disk files are fully buffered.
so that 4 should be a 5… maybe… I am trying to figure out where the number “4” comes from.
Using other compilers (like Intel) or, as I said, PGI compiler versions below 12.3, this problem doe not appear.
Do you have any suggestion to solve it?