Обсуждение: Problems displaying data from Query Tool and View/Edit Data Tool.

Поиск
Список
Период
Сортировка

Problems displaying data from Query Tool and View/Edit Data Tool.

От
Steve Martin
Дата:
Hi All,

I have problems when using the "Edit Window" and "Query Window".  It
seems that for some reason the recv is exiting early with the
reception of a EAGAIN (Resource temporarily unavailable) signal.
Refer to the truss output below. This results in no data being
displayed. For the query window, data will be intermittently be
displayed.  There is 3 rows of data.  For the "Edit Data" window, if
selected via the menu (Tools->View Data), data will sometimes be
displayed, but when the "View Data" bottom is pressed, the Edit Window
is displayed with no column or row data and the text "aborting" is
displayed at the bottom left of the window.

Has anyone any ideas whether what would cause this and/or how to
isolate the cause.  There seems to be no problem with gathering data
on the set-up of the database.

This were obtained when "F5" (Execute) was pressed in the sql query
window, no data displayed.  The following is a truss of the pgadmin
process.
23191:  lwp_create(0xFFBFD868, LWP_SUSPENDED, 0xFFBFD864) = 102
23191/1:        lwp_continue(102)                               = 0
23191/102:      lwp_create()    (returning as new lwp ...)      = 0
23191/102:      lwp_schedctl(SC_STATE|SC_PREEMPT, 0, 0xFE0FBBBC) = 0
23191/102:      time()                                          = 1122264710
23191/102:      getpid()                                        = 23191 
[23441]
23191/102:      open64("pgadmin.log", O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
23191/102:      llseek(9, 0, SEEK_END)                          = 2255822
23191/102:      fstat64(9, 0xFE0FB948)                          = 0
23191/102:      fstat64(9, 0xFE0FB7F0)                          = 0
23191/102:      ioctl(9, TCGETA, 0xFE0FB8D4)                    Err#25 
ENOTTY
23191/102:      write(9, 0x011B3074, 65)                        = 65
23191/102:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 0   I N F O       
:   R u n
23191/102:         n i n g   q u e r y   s e l e c t   *   f r o m   w e 
a t h e r
23191/102:        \n
23191/102:      close(9)                                        = 0
23191/102:      time()                                          = 1122264710
23191/102:      getpid()                                        = 23191 
[23441]
23191/102:      open64("pgadmin.log", O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
23191/102:      llseek(9, 0, SEEK_END)                          = 2255887
23191/102:      fstat64(9, 0xFE0FB958)                          = 0
23191/102:      fstat64(9, 0xFE0FB800)                          = 0
23191/102:      ioctl(9, TCGETA, 0xFE0FB8E4)                    Err#25 
ENOTTY
23191/102:      write(9, 0x011B3074, 64)                        = 64
23191/102:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 0   Q U E R Y     
:   T h r
23191/102:         e a d   Q u e r y   s e l e c t   *   f r o m   w e a 
t h e r\n
23191/1:        write(6, 0x00BA8A08, 2832)                      = 2832
23191/1:          12\0\007\0 x L O\0\001AD\0\0\006  03\004\0\0\001 L 089 
y 8 x\005
23191/1:          \0 x\0 E\0\b80\0\0\0\0\0\0\0\0\0 8FF\004\0 x\0 
F\0\b\0\0\0\0\0\0                 :                 :
23191/1:          02 ?\0D4 ;03\005\0 x\0 #\0\0\0\0\0\0\0\002 P\0E6 >03\007\0 x ` k
23191/1:          \0 x L g\0 x\0 #\0\0\0\0\0\0\0\002 P\0E6 8\0\004\0 x\0 
#\0\b\0\0
23191/1:          \0\0\0\0 6 x\002\0 x ` k +9B\001
23191/102:      close(9)                                        = 0
23191/102:      sigaction(SIGPIPE, 0xFE0FB9E0, 0xFE0FBB00)      = 0
23191/102:      send(8, 0x0105E878, 27, 0)                      = 27
23191/102:         Q\0\0\01A s e l e c t   *   f r o m   w e a t h e r\0
23191/102:      sigaction(SIGPIPE, 0xFE0FB9E0, 0xFE0FBB00)      = 0
23191/102:      recv(8, 0x0105A870, 16384, 0)                   = 304
23191/102:         T\0\0\07F\005 c i t y\0\012 NC4\001\0\00413FFFF\0\0\0 
T\0\0 t e
23191/102:         m p _ l o\0\012 NC4\002\0\0\017\004FFFFFFFF\0\0 t e m 
p _ h i\0
23191/102:        \012 NC4\003\0\0\017\004FFFFFFFF\0\0 p r c p\0\012 
NC4\004\0\002
23191/102:        BC\004FFFFFFFF\0\0 d a t e\0\012 NC4\005\0\004 
:\004FFFFFFFF\0\0
23191/102:         D\0\0\0 6\005\0\0\0\r S a n   F r a n c i s c 
o\0\0\002 4 1\0\0
23191/102:        \002 5 5\0\0\001 0\0\0\0\n 1 9 9 4 - 1 1 - 2 9 D\0\0\0 
/\005\0\0
23191/102:        \007 H a y w a r d\0\0\002 3 5\0\0\002 5 
2FFFFFFFF\0\0\0\n 1 9 9
23191/102:         4 - 1 1 - 2 9 D\0\0\0 6\005\0\0\0\r S a n   F r a n c 
i s c o\0
23191/102:        \0\002 4 1\0\0\002 5 5\0\0\001 0\0\0\0\n 1 9 9 4 - 1 1 
- 2 9 C\0
23191/102:        \0\0\v S E L E C T\0 Z\0\0\005 I
23191/102:      recv(8, 0x0105A876, 16378, 0)                   Err#11 
EAGAIN
23191/102:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0xFE0FBDA0) = 0
23191/102:      sigprocmask(SIG_SETMASK, 0xFE0FBD8C, 0x00000000) = 0
23191/102:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0x00000000) = 0
23191/102:      lwp_exit()
23191:  read(6, 0xFFBFDAF8, 32)                         Err#11 EAGAIN
23191:  poll(0xFFBFD848, 1, -1)                         = 1
23191:  read(6, 0xFFBFDAF8, 32)                         = 32

Slightly different example, same result:

23191/1:          \0\0\0\0\0\0\0\002 P\0E6 >9B\007\0 x ` ~\0 x L g\0 x\0 
#\0\0\0\0
23191/1:          \0\0\0\002 P\0E6 8 x\004\0 x\0 #\0\b\0\0\0\0\0\0 6 
x\002\0 x ` ~
23191/1:           +\0\001
23191/103:      getpid()                                        = 23191 
[23441]
23191/1:        read(6, 0xFFBFDAF8, 32)                         Err#11 
EAGAIN
23191/103:      open64("pgadmin.log", O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
23191/103:      llseek(9, 0, SEEK_END)                          = 2255951
23191/103:      fstat64(9, 0xFE0FB948)                          = 0
23191/103:      fstat64(9, 0xFE0FB7F0)                          = 0
23191/103:      ioctl(9, TCGETA, 0xFE0FB8D4)                    Err#25 
ENOTTY
23191/103:      write(9, 0x011B3A84, 65)                        = 65
23191/103:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 2   I N F O       
:   R u n
23191/103:         n i n g   q u e r y   s e l e c t   *   f r o m   w e 
a t h e r
23191/103:        \n
23191/103:      close(9)                                        = 0
23191/103:      time()                                          = 1122264712
23191/103:      getpid()                                        = 23191 
[23441]
23191/103:      open64("pgadmin.log", O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
23191/103:      llseek(9, 0, SEEK_END)                          = 2256016
23191/103:      fstat64(9, 0xFE0FB958)                          = 0
23191/103:      fstat64(9, 0xFE0FB800)                          = 0
23191/103:      ioctl(9, TCGETA, 0xFE0FB8E4)                    Err#25 
ENOTTY
23191/103:      write(9, 0x011B3A84, 64)                        = 64
23191/103:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 2   Q U E R Y     
:   T h r
23191/103:         e a d   Q u e r y   s e l e c t   *   f r o m   w e a 
t h e r\n
23191/1:        poll(0xFFBFD848, 1, -1)                         = 1
23191/1:        read(6, 0xFFBFDAF8, 32)                         = 32               :               :
23191/1:        ioctl(6, FIONREAD, 0xFFBFD70C)                  = 0
23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
23191/1:        poll(0x00B98350, 2, 0)                          = 0
23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
23191/103:      close(9)                                        = 0
23191/103:      sigaction(SIGPIPE, 0xFE0FB900, 0xFE0FBA20)      = 0
23191/103:      send(8, 0x0105E878, 15, 0)                      = 15
23191/103:         Q\0\0\00E S E L E C T   1 ;\0
23191/103:      sigaction(SIGPIPE, 0xFE0FB900, 0xFE0FBA20)      = 0
23191/1:        poll(0x00B98350, 2, 0)                          = 0
23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
23191/1:        poll(0x00B98350, 2, 0)                          = 0
23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
23191/1:        poll(0x00B98350, 2, 0)                          = 0
23191/103:      poll(0xFE0FBA58, 1, -1)                         = 1
23191/103:      recv(8, 0x0105A870, 16384, 0)                   = 64
23191/103:         T\0\0\0 !\001 ? c o l u m n 
?\0\0\0\0\0\0\0\0\0\017\004FFFFFFFF
23191/103:        \0\0 D\0\0\0\v\001\0\0\001 1 C\0\0\0\v S E L E C T\0 
Z\0\0\005 I
23191/103:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0xFE0FBDA0) = 0
23191/103:      sigprocmask(SIG_SETMASK, 0xFE0FBD8C, 0x00000000) = 0
23191/103:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0x00000000) = 0
23191/103:      lwp_exit()
23191:  write(6, 0x00BA8A08, 5660)                      = 5660
23191:    \b\0\002\0 x L j 518\004\0 x `7F\0 x L e02 R\01F ;03\005\0 x\0 #
23191:    \0\0\0\0\0\0\0\002 R\01F 8\0\005\0 x\0 #\0\0 0\0FFFFFFFEFFFFFE7F
23191:     F\0\005\0 x `7F\0 x\0 #\0\0\0\002 R\01F 8 x\004\0 x\0 #\0\b\0\0
23191:    \0\0\0\0 8 x\005\0 x\0 E\0\b80\0\0\0\0\0\0\0\0\0 8\0\004\0 x\0 F


Setup details.

postgresql-8.0.3
pgadmin3-1.2.2
wxWidgets 2.6.1
gtk+-2.6.8
gcc 3.2.3

Hardware
Sun sparc with Solaris 9 installed.

Regards - Steve Martin






Re: Problems displaying data from Query Tool and View/Edit Data Tool.

От
"Dave Page"
Дата:
Hi Steve,

The main difference between those tools and the rest of the code is that
they execute their queries in a separate thread.

I wonder if PostgreSQL needs to be compiled with --enable-thread-safety
on Solaris for pgAdmin to work as it should?

Regards, Dave.

> -----Original Message-----
> From: pgadmin-support-owner@postgresql.org
> [mailto:pgadmin-support-owner@postgresql.org] On Behalf Of
> Steve Martin
> Sent: 25 July 2005 05:58
> To: pgadmin-support@postgresql.org
> Subject: [pgadmin-support] Problems displaying data from
> Query Tool and View/Edit Data Tool.
>
> Hi All,
>
> I have problems when using the "Edit Window" and "Query Window".  It
> seems that for some reason the recv is exiting early with the
> reception of a EAGAIN (Resource temporarily unavailable) signal.
> Refer to the truss output below. This results in no data being
> displayed. For the query window, data will be intermittently be
> displayed.  There is 3 rows of data.  For the "Edit Data" window, if
> selected via the menu (Tools->View Data), data will sometimes be
> displayed, but when the "View Data" bottom is pressed, the Edit Window
> is displayed with no column or row data and the text "aborting" is
> displayed at the bottom left of the window.
>
> Has anyone any ideas whether what would cause this and/or how to
> isolate the cause.  There seems to be no problem with gathering data
> on the set-up of the database.
>
> This were obtained when "F5" (Execute) was pressed in the sql query
> window, no data displayed.  The following is a truss of the pgadmin
> process.
>
> 23191:  lwp_create(0xFFBFD868, LWP_SUSPENDED, 0xFFBFD864) = 102
> 23191/1:        lwp_continue(102)                               = 0
> 23191/102:      lwp_create()    (returning as new lwp ...)      = 0
> 23191/102:      lwp_schedctl(SC_STATE|SC_PREEMPT, 0, 0xFE0FBBBC) = 0
> 23191/102:      time()
>   = 1122264710
> 23191/102:      getpid()
>   = 23191
> [23441]
> 23191/102:      open64("pgadmin.log",
> O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
> 23191/102:      llseek(9, 0, SEEK_END)
>   = 2255822
> 23191/102:      fstat64(9, 0xFE0FB948)                          = 0
> 23191/102:      fstat64(9, 0xFE0FB7F0)                          = 0
> 23191/102:      ioctl(9, TCGETA, 0xFE0FB8D4)
>   Err#25
> ENOTTY
> 23191/102:      write(9, 0x011B3074, 65)                        = 65
> 23191/102:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 0   I
> N F O
> :   R u n
> 23191/102:         n i n g   q u e r y   s e l e c t   *   f
> r o m   w e
> a t h e r
> 23191/102:        \n
> 23191/102:      close(9)                                        = 0
> 23191/102:      time()
>   = 1122264710
> 23191/102:      getpid()
>   = 23191
> [23441]
> 23191/102:      open64("pgadmin.log",
> O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
> 23191/102:      llseek(9, 0, SEEK_END)
>   = 2255887
> 23191/102:      fstat64(9, 0xFE0FB958)                          = 0
> 23191/102:      fstat64(9, 0xFE0FB800)                          = 0
> 23191/102:      ioctl(9, TCGETA, 0xFE0FB8E4)
>   Err#25
> ENOTTY
> 23191/102:      write(9, 0x011B3074, 64)                        = 64
> 23191/102:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 0   Q
> U E R Y
> :   T h r
> 23191/102:         e a d   Q u e r y   s e l e c t   *   f r
> o m   w e a
> t h e r\n
> 23191/1:        write(6, 0x00BA8A08, 2832)                      = 2832
> 23191/1:          12\0\007\0 x L O\0\001AD\0\0\006
> 03\004\0\0\001 L 089
> y 8 x\005
> 23191/1:          \0 x\0 E\0\b80\0\0\0\0\0\0\0\0\0 8FF\004\0 x\0
> F\0\b\0\0\0\0\0\0
>                   :
>                   :
> 23191/1:          02 ?\0D4 ;03\005\0 x\0 #\0\0\0\0\0\0\0\002 P\0E6
>  >03\007\0 x ` k
> 23191/1:          \0 x L g\0 x\0 #\0\0\0\0\0\0\0\002 P\0E6
> 8\0\004\0 x\0
> #\0\b\0\0
> 23191/1:          \0\0\0\0 6 x\002\0 x ` k +9B\001
> 23191/102:      close(9)                                        = 0
> 23191/102:      sigaction(SIGPIPE, 0xFE0FB9E0, 0xFE0FBB00)      = 0
> 23191/102:      send(8, 0x0105E878, 27, 0)                      = 27
> 23191/102:         Q\0\0\01A s e l e c t   *   f r o m   w e
> a t h e r\0
> 23191/102:      sigaction(SIGPIPE, 0xFE0FB9E0, 0xFE0FBB00)      = 0
> 23191/102:      recv(8, 0x0105A870, 16384, 0)                   = 304
> 23191/102:         T\0\0\07F\005 c i t y\0\012
> NC4\001\0\00413FFFF\0\0\0
> T\0\0 t e
> 23191/102:         m p _ l o\0\012
> NC4\002\0\0\017\004FFFFFFFF\0\0 t e m
> p _ h i\0
> 23191/102:        \012 NC4\003\0\0\017\004FFFFFFFF\0\0 p r c p\0\012
> NC4\004\0\002
> 23191/102:        BC\004FFFFFFFF\0\0 d a t e\0\012 NC4\005\0\004
> :\004FFFFFFFF\0\0
> 23191/102:         D\0\0\0 6\005\0\0\0\r S a n   F r a n c i s c
> o\0\0\002 4 1\0\0
> 23191/102:        \002 5 5\0\0\001 0\0\0\0\n 1 9 9 4 - 1 1 -
> 2 9 D\0\0\0
> /\005\0\0
> 23191/102:        \007 H a y w a r d\0\0\002 3 5\0\0\002 5
> 2FFFFFFFF\0\0\0\n 1 9 9
> 23191/102:         4 - 1 1 - 2 9 D\0\0\0 6\005\0\0\0\r S a n
>  F r a n c
> i s c o\0
> 23191/102:        \0\002 4 1\0\0\002 5 5\0\0\001 0\0\0\0\n 1
> 9 9 4 - 1 1
> - 2 9 C\0
> 23191/102:        \0\0\v S E L E C T\0 Z\0\0\005 I
> 23191/102:      recv(8, 0x0105A876, 16378, 0)
>   Err#11
> EAGAIN
> 23191/102:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0xFE0FBDA0) = 0
> 23191/102:      sigprocmask(SIG_SETMASK, 0xFE0FBD8C, 0x00000000) = 0
> 23191/102:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0x00000000) = 0
> 23191/102:      lwp_exit()
> 23191:  read(6, 0xFFBFDAF8, 32)                         Err#11 EAGAIN
> 23191:  poll(0xFFBFD848, 1, -1)                         = 1
> 23191:  read(6, 0xFFBFDAF8, 32)                         = 32
>
> Slightly different example, same result:
>
> 23191/1:          \0\0\0\0\0\0\0\002 P\0E6 >9B\007\0 x ` ~\0
> x L g\0 x\0
> #\0\0\0\0
> 23191/1:          \0\0\0\002 P\0E6 8 x\004\0 x\0 #\0\b\0\0\0\0\0\0 6
> x\002\0 x ` ~
> 23191/1:           +\0\001
> 23191/103:      getpid()
>   = 23191
> [23441]
> 23191/1:        read(6, 0xFFBFDAF8, 32)
>   Err#11
> EAGAIN
> 23191/103:      open64("pgadmin.log",
> O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
> 23191/103:      llseek(9, 0, SEEK_END)
>   = 2255951
> 23191/103:      fstat64(9, 0xFE0FB948)                          = 0
> 23191/103:      fstat64(9, 0xFE0FB7F0)                          = 0
> 23191/103:      ioctl(9, TCGETA, 0xFE0FB8D4)
>   Err#25
> ENOTTY
> 23191/103:      write(9, 0x011B3A84, 65)                        = 65
> 23191/103:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 2   I
> N F O
> :   R u n
> 23191/103:         n i n g   q u e r y   s e l e c t   *   f
> r o m   w e
> a t h e r
> 23191/103:        \n
> 23191/103:      close(9)                                        = 0
> 23191/103:      time()
>   = 1122264712
> 23191/103:      getpid()
>   = 23191
> [23441]
> 23191/103:      open64("pgadmin.log",
> O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
> 23191/103:      llseek(9, 0, SEEK_END)
>   = 2256016
> 23191/103:      fstat64(9, 0xFE0FB958)                          = 0
> 23191/103:      fstat64(9, 0xFE0FB800)                          = 0
> 23191/103:      ioctl(9, TCGETA, 0xFE0FB8E4)
>   Err#25
> ENOTTY
> 23191/103:      write(9, 0x011B3A84, 64)                        = 64
> 23191/103:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 2   Q
> U E R Y
> :   T h r
> 23191/103:         e a d   Q u e r y   s e l e c t   *   f r
> o m   w e a
> t h e r\n
> 23191/1:        poll(0xFFBFD848, 1, -1)                         = 1
> 23191/1:        read(6, 0xFFBFDAF8, 32)                         = 32
>                 :
>                 :
> 23191/1:        ioctl(6, FIONREAD, 0xFFBFD70C)                  = 0
> 23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
> 23191/1:        poll(0x00B98350, 2, 0)                          = 0
> 23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
> 23191/103:      close(9)                                        = 0
> 23191/103:      sigaction(SIGPIPE, 0xFE0FB900, 0xFE0FBA20)      = 0
> 23191/103:      send(8, 0x0105E878, 15, 0)                      = 15
> 23191/103:         Q\0\0\00E S E L E C T   1 ;\0
> 23191/103:      sigaction(SIGPIPE, 0xFE0FB900, 0xFE0FBA20)      = 0
> 23191/1:        poll(0x00B98350, 2, 0)                          = 0
> 23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
> 23191/1:        poll(0x00B98350, 2, 0)                          = 0
> 23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
> 23191/1:        poll(0x00B98350, 2, 0)                          = 0
> 23191/103:      poll(0xFE0FBA58, 1, -1)                         = 1
> 23191/103:      recv(8, 0x0105A870, 16384, 0)                   = 64
> 23191/103:         T\0\0\0 !\001 ? c o l u m n
> ?\0\0\0\0\0\0\0\0\0\017\004FFFFFFFF
> 23191/103:        \0\0 D\0\0\0\v\001\0\0\001 1 C\0\0\0\v S E
> L E C T\0
> Z\0\0\005 I
> 23191/103:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0xFE0FBDA0) = 0
> 23191/103:      sigprocmask(SIG_SETMASK, 0xFE0FBD8C, 0x00000000) = 0
> 23191/103:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0x00000000) = 0
> 23191/103:      lwp_exit()
> 23191:  write(6, 0x00BA8A08, 5660)                      = 5660
> 23191:    \b\0\002\0 x L j 518\004\0 x `7F\0 x L e02 R\01F
> ;03\005\0 x\0 #
> 23191:    \0\0\0\0\0\0\0\002 R\01F 8\0\005\0 x\0 #\0\0
> 0\0FFFFFFFEFFFFFE7F
> 23191:     F\0\005\0 x `7F\0 x\0 #\0\0\0\002 R\01F 8 x\004\0
> x\0 #\0\b\0\0
> 23191:    \0\0\0\0 8 x\005\0 x\0 E\0\b80\0\0\0\0\0\0\0\0\0
> 8\0\004\0 x\0 F
>
>
> Setup details.
>
> postgresql-8.0.3
> pgadmin3-1.2.2
> wxWidgets 2.6.1
> gtk+-2.6.8
> gcc 3.2.3
>
> Hardware
> Sun sparc with Solaris 9 installed.
>
> Regards - Steve Martin
>
>
>
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq
>


Re: Problems displaying data from Query Tool and

От
Steve Martin
Дата:
Hello Dave,

Thanks for your reply, I also suspected that it has something to do with
the threading.

I have compiled PostgreSQL with --enable-thread-safety
set and confirmed from the config.log that this option is set:
   :   :It was created by PostgreSQL configure 8.0.3, which was
generated by GNU Autoconf 2.53.  Invocation command line was
 $ ./configure --with-openssl --with-pam --enable-thread-safety 
--enable-debug

## --------- ##
## Platform. ##
## --------- ##

hostname = xxxxx
uname -m = sun4u
uname -r = 5.9
uname -s = SunOS
uname -v = Generic_112233-07   :   :
configure:18926: checking thread safety of required library functions
configure:18951: gcc -o conftest -O2 -Wall -Wmissing-prototypes 
-Wpointer-arith -fno-strict-aliasing -g  -pthreads   -pthreads  
-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS -DIN_CONFIGURE 
-I/usr/local/ssl/include    conftest.c -lpam -lssl -lcrypto -lz 
-lreadline -ltermcap -lrt -lresolv -lgen -lsocket -lnsl -ldl -lm   
-lpthread      -lpthread    >&5
configure:18954: $? = 0
configure:18956: ./conftest
Your errno is thread-safe.
Your system uses strerror() which is thread-safe.
Your system has getpwuid_r();  it does not need getpwuid().
Your system has getaddrinfo();  it does not need gethostbyname() or gethostbyname_r().

Your platform is thread-safe.
configure:18959: $? = 0
configure:18961: result: yes
configure:19112: creating ./config.status   :   :

I then re-made pgadmin, unfortunately, I still have the same problems but I
suspect it has improved slightly.  When using the Query window, I now get
results more often than I did, but it still often fails.  Using the View 
button
still results in 100% failure.

I am using gdb to try and understand how this process works but I can only
spend a short time at work looking at this problem.  I have no such problem
on my Linux (Fedora core 3) machine at home.

Regards,  Steve


Dave Page wrote:

>Hi Steve,
>
>The main difference between those tools and the rest of the code is that
>they execute their queries in a separate thread.
>
>I wonder if PostgreSQL needs to be compiled with --enable-thread-safety
>on Solaris for pgAdmin to work as it should?
>
>Regards, Dave. 
>
>  
>
>>-----Original Message-----
>>From: pgadmin-support-owner@postgresql.org 
>>[mailto:pgadmin-support-owner@postgresql.org] On Behalf Of 
>>Steve Martin
>>Sent: 25 July 2005 05:58
>>To: pgadmin-support@postgresql.org
>>Subject: [pgadmin-support] Problems displaying data from 
>>Query Tool and View/Edit Data Tool.
>>
>>Hi All,
>>
>>I have problems when using the "Edit Window" and "Query Window".  It
>>seems that for some reason the recv is exiting early with the
>>reception of a EAGAIN (Resource temporarily unavailable) signal.
>>Refer to the truss output below. This results in no data being
>>displayed. For the query window, data will be intermittently be
>>displayed.  There is 3 rows of data.  For the "Edit Data" window, if
>>selected via the menu (Tools->View Data), data will sometimes be
>>displayed, but when the "View Data" bottom is pressed, the Edit Window
>>is displayed with no column or row data and the text "aborting" is
>>displayed at the bottom left of the window.
>>
>>Has anyone any ideas whether what would cause this and/or how to
>>isolate the cause.  There seems to be no problem with gathering data
>>on the set-up of the database.
>>
>>This were obtained when "F5" (Execute) was pressed in the sql query
>>window, no data displayed.  The following is a truss of the pgadmin
>>process.
>> 
>>23191:  lwp_create(0xFFBFD868, LWP_SUSPENDED, 0xFFBFD864) = 102
>>23191/1:        lwp_continue(102)                               = 0
>>23191/102:      lwp_create()    (returning as new lwp ...)      = 0
>>23191/102:      lwp_schedctl(SC_STATE|SC_PREEMPT, 0, 0xFE0FBBBC) = 0
>>23191/102:      time()                                        
>>  = 1122264710
>>23191/102:      getpid()                                      
>>  = 23191 
>>[23441]
>>23191/102:      open64("pgadmin.log", 
>>O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
>>23191/102:      llseek(9, 0, SEEK_END)                        
>>  = 2255822
>>23191/102:      fstat64(9, 0xFE0FB948)                          = 0
>>23191/102:      fstat64(9, 0xFE0FB7F0)                          = 0
>>23191/102:      ioctl(9, TCGETA, 0xFE0FB8D4)                  
>>  Err#25 
>>ENOTTY
>>23191/102:      write(9, 0x011B3074, 65)                        = 65
>>23191/102:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 0   I 
>>N F O       
>>:   R u n
>>23191/102:         n i n g   q u e r y   s e l e c t   *   f 
>>r o m   w e 
>>a t h e r
>>23191/102:        \n
>>23191/102:      close(9)                                        = 0
>>23191/102:      time()                                        
>>  = 1122264710
>>23191/102:      getpid()                                      
>>  = 23191 
>>[23441]
>>23191/102:      open64("pgadmin.log", 
>>O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
>>23191/102:      llseek(9, 0, SEEK_END)                        
>>  = 2255887
>>23191/102:      fstat64(9, 0xFE0FB958)                          = 0
>>23191/102:      fstat64(9, 0xFE0FB800)                          = 0
>>23191/102:      ioctl(9, TCGETA, 0xFE0FB8E4)                  
>>  Err#25 
>>ENOTTY
>>23191/102:      write(9, 0x011B3074, 64)                        = 64
>>23191/102:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 0   Q 
>>U E R Y     
>>:   T h r
>>23191/102:         e a d   Q u e r y   s e l e c t   *   f r 
>>o m   w e a 
>>t h e r\n
>>23191/1:        write(6, 0x00BA8A08, 2832)                      = 2832
>>23191/1:          12\0\007\0 x L O\0\001AD\0\0\006  
>>03\004\0\0\001 L 089 
>>y 8 x\005
>>23191/1:          \0 x\0 E\0\b80\0\0\0\0\0\0\0\0\0 8FF\004\0 x\0 
>>F\0\b\0\0\0\0\0\0
>>                  :
>>                  :
>>23191/1:          02 ?\0D4 ;03\005\0 x\0 #\0\0\0\0\0\0\0\002 P\0E6 
>> >03\007\0 x ` k
>>23191/1:          \0 x L g\0 x\0 #\0\0\0\0\0\0\0\002 P\0E6 
>>8\0\004\0 x\0 
>>#\0\b\0\0
>>23191/1:          \0\0\0\0 6 x\002\0 x ` k +9B\001
>>23191/102:      close(9)                                        = 0
>>23191/102:      sigaction(SIGPIPE, 0xFE0FB9E0, 0xFE0FBB00)      = 0
>>23191/102:      send(8, 0x0105E878, 27, 0)                      = 27
>>23191/102:         Q\0\0\01A s e l e c t   *   f r o m   w e 
>>a t h e r\0
>>23191/102:      sigaction(SIGPIPE, 0xFE0FB9E0, 0xFE0FBB00)      = 0
>>23191/102:      recv(8, 0x0105A870, 16384, 0)                   = 304
>>23191/102:         T\0\0\07F\005 c i t y\0\012 
>>NC4\001\0\00413FFFF\0\0\0 
>>T\0\0 t e
>>23191/102:         m p _ l o\0\012 
>>NC4\002\0\0\017\004FFFFFFFF\0\0 t e m 
>>p _ h i\0
>>23191/102:        \012 NC4\003\0\0\017\004FFFFFFFF\0\0 p r c p\0\012 
>>NC4\004\0\002
>>23191/102:        BC\004FFFFFFFF\0\0 d a t e\0\012 NC4\005\0\004 
>>:\004FFFFFFFF\0\0
>>23191/102:         D\0\0\0 6\005\0\0\0\r S a n   F r a n c i s c 
>>o\0\0\002 4 1\0\0
>>23191/102:        \002 5 5\0\0\001 0\0\0\0\n 1 9 9 4 - 1 1 - 
>>2 9 D\0\0\0 
>>/\005\0\0
>>23191/102:        \007 H a y w a r d\0\0\002 3 5\0\0\002 5 
>>2FFFFFFFF\0\0\0\n 1 9 9
>>23191/102:         4 - 1 1 - 2 9 D\0\0\0 6\005\0\0\0\r S a n  
>> F r a n c 
>>i s c o\0
>>23191/102:        \0\002 4 1\0\0\002 5 5\0\0\001 0\0\0\0\n 1 
>>9 9 4 - 1 1 
>>- 2 9 C\0
>>23191/102:        \0\0\v S E L E C T\0 Z\0\0\005 I
>>23191/102:      recv(8, 0x0105A876, 16378, 0)                 
>>  Err#11 
>>EAGAIN
>>23191/102:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0xFE0FBDA0) = 0
>>23191/102:      sigprocmask(SIG_SETMASK, 0xFE0FBD8C, 0x00000000) = 0
>>23191/102:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0x00000000) = 0
>>23191/102:      lwp_exit()
>>23191:  read(6, 0xFFBFDAF8, 32)                         Err#11 EAGAIN
>>23191:  poll(0xFFBFD848, 1, -1)                         = 1
>>23191:  read(6, 0xFFBFDAF8, 32)                         = 32
>>
>>Slightly different example, same result:
>>
>>23191/1:          \0\0\0\0\0\0\0\002 P\0E6 >9B\007\0 x ` ~\0
>>x L g\0 x\0 
>>#\0\0\0\0
>>23191/1:          \0\0\0\002 P\0E6 8 x\004\0 x\0 #\0\b\0\0\0\0\0\0 6 
>>x\002\0 x ` ~
>>23191/1:           +\0\001
>>23191/103:      getpid()                                      
>>  = 23191 
>>[23441]
>>23191/1:        read(6, 0xFFBFDAF8, 32)                       
>>  Err#11 
>>EAGAIN
>>23191/103:      open64("pgadmin.log", 
>>O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
>>23191/103:      llseek(9, 0, SEEK_END)                        
>>  = 2255951
>>23191/103:      fstat64(9, 0xFE0FB948)                          = 0
>>23191/103:      fstat64(9, 0xFE0FB7F0)                          = 0
>>23191/103:      ioctl(9, TCGETA, 0xFE0FB8D4)                  
>>  Err#25 
>>ENOTTY
>>23191/103:      write(9, 0x011B3A84, 65)                        = 65
>>23191/103:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 2   I 
>>N F O       
>>:   R u n
>>23191/103:         n i n g   q u e r y   s e l e c t   *   f 
>>r o m   w e 
>>a t h e r
>>23191/103:        \n
>>23191/103:      close(9)                                        = 0
>>23191/103:      time()                                        
>>  = 1122264712
>>23191/103:      getpid()                                      
>>  = 23191 
>>[23441]
>>23191/103:      open64("pgadmin.log", 
>>O_WRONLY|O_APPEND|O_CREAT, 0666) = 9
>>23191/103:      llseek(9, 0, SEEK_END)                        
>>  = 2256016
>>23191/103:      fstat64(9, 0xFE0FB958)                          = 0
>>23191/103:      fstat64(9, 0xFE0FB800)                          = 0
>>23191/103:      ioctl(9, TCGETA, 0xFE0FB8E4)                  
>>  Err#25 
>>ENOTTY
>>23191/103:      write(9, 0x011B3A84, 64)                        = 64
>>23191/103:         2 0 0 5 - 0 7 - 2 5   1 6 : 1 1 : 5 2   Q 
>>U E R Y     
>>:   T h r
>>23191/103:         e a d   Q u e r y   s e l e c t   *   f r 
>>o m   w e a 
>>t h e r\n
>>23191/1:        poll(0xFFBFD848, 1, -1)                         = 1
>>23191/1:        read(6, 0xFFBFDAF8, 32)                         = 32
>>                :
>>                :
>>23191/1:        ioctl(6, FIONREAD, 0xFFBFD70C)                  = 0
>>23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
>>23191/1:        poll(0x00B98350, 2, 0)                          = 0
>>23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
>>23191/103:      close(9)                                        = 0
>>23191/103:      sigaction(SIGPIPE, 0xFE0FB900, 0xFE0FBA20)      = 0
>>23191/103:      send(8, 0x0105E878, 15, 0)                      = 15
>>23191/103:         Q\0\0\00E S E L E C T   1 ;\0
>>23191/103:      sigaction(SIGPIPE, 0xFE0FB900, 0xFE0FBA20)      = 0
>>23191/1:        poll(0x00B98350, 2, 0)                          = 0
>>23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
>>23191/1:        poll(0x00B98350, 2, 0)                          = 0
>>23191/1:        ioctl(6, FIONREAD, 0xFFBFD864)                  = 0
>>23191/1:        poll(0x00B98350, 2, 0)                          = 0
>>23191/103:      poll(0xFE0FBA58, 1, -1)                         = 1
>>23191/103:      recv(8, 0x0105A870, 16384, 0)                   = 64
>>23191/103:         T\0\0\0 !\001 ? c o l u m n 
>>?\0\0\0\0\0\0\0\0\0\017\004FFFFFFFF
>>23191/103:        \0\0 D\0\0\0\v\001\0\0\001 1 C\0\0\0\v S E 
>>L E C T\0 
>>Z\0\0\005 I
>>23191/103:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0xFE0FBDA0) = 0
>>23191/103:      sigprocmask(SIG_SETMASK, 0xFE0FBD8C, 0x00000000) = 0
>>23191/103:      sigprocmask(SIG_SETMASK, 0xFE34A074, 0x00000000) = 0
>>23191/103:      lwp_exit()
>>23191:  write(6, 0x00BA8A08, 5660)                      = 5660
>>23191:    \b\0\002\0 x L j 518\004\0 x `7F\0 x L e02 R\01F 
>>;03\005\0 x\0 #
>>23191:    \0\0\0\0\0\0\0\002 R\01F 8\0\005\0 x\0 #\0\0 
>>0\0FFFFFFFEFFFFFE7F
>>23191:     F\0\005\0 x `7F\0 x\0 #\0\0\0\002 R\01F 8 x\004\0 
>>x\0 #\0\b\0\0
>>23191:    \0\0\0\0 8 x\005\0 x\0 E\0\b80\0\0\0\0\0\0\0\0\0 
>>8\0\004\0 x\0 F
>>
>>
>>Setup details.
>>
>>postgresql-8.0.3
>>pgadmin3-1.2.2
>>wxWidgets 2.6.1
>>gtk+-2.6.8
>>gcc 3.2.3
>>
>>Hardware
>>Sun sparc with Solaris 9 installed.
>>
>>Regards - Steve Martin
>>
>>
>>
>>
>>
>>---------------------------(end of 
>>broadcast)---------------------------
>>TIP 3: Have you checked our extensive FAQ?
>>
>>               http://www.postgresql.org/docs/faq
>>
>>    
>>
>
>---------------------------(end of broadcast)---------------------------
>TIP 5: don't forget to increase your free space map settings
>
>  
>

--               \\|//             From near to far,               @ @              from here to there,
---oOOo-(_)-oOOo---     funny things are everywhere.  (Dr. Seuss)
 
xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx  Steve Martin < smartin@wlg.nec.co.nz >
Cell029-381 6291  Snail Mail   Development, Telecom Unit, NEC New Zealand Ltd.,               PO Box 1936, Wellington,
NewZealand.  Voice: +64-4-381 1111  Fax: +64-4-381 6262  DDI +64-4-381 6291  NEC NZ web site: http://www.nec.co.nz
 
xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx