[SqueakDBX] Connection not Valid problem

Mariano Martinez Peck marianopeck at gmail.com
Thu Sep 24 01:03:11 UTC 2009


I was thinking if you have the problem in Squeak also or just Pharo ?

On Wed, Sep 23, 2009 at 8:12 PM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

>
>
> On Wed, Sep 23, 2009 at 8:25 PM, John Toohey <jt at parspro.com> wrote:
>
>> Hi,
>>
>
>
> Hi John! This list is SqueakDBX related, so perhaps I am not the best one
> to help you. I just make Glorp and PostgreSQL native driver to work on
> Pharo. Actually, the only thing I did is to have all green tests. No more
> than that. I don't have a Glorp + native postgresql driver application.
> Anyway, I will try to help you ;)
>
>
>
>> My app frequently losses the connection the Postgres, and throws a
>> "Connection not Valid" exception. Unfortunately on the latest Pharo images,
>> there is a bug that causes this to write the stack trace to disk, and then
>> the image locks up.
>>
>
> you meat there is a Pharo bug that when there is a walkback and the
> stacktrace is written to disk, it freezes the image ?  is there a bug report
> of that ? Could you reproduce that ?
>
>
>>  I think the socket on the PGConnection class is being closed or times
>> out, and I need to know is there someway that I can debug this or if its a
>> know issue.
>>
>>
> Yes, that's probably the case. I can see in code that the error 'Connection
> not valid' when the connection is not connected or if it is nil. If you see
> your stacktrace, you can see that the socket variable is nil. That's why the
> error. Now, the question is why the socket is nil ?
>
> I looked for the code to see where can be the socket set to nil, and I
> found some places:  PGConnection stTerminalError:  , stTerminated
> Perhaps you can put a "self halt" in those methods and then debug them.
>
> The PGConnection seems to do a lot of "self log: 'XXXX'". So, perhaps you
> can have a Transcript opened to see that.
>
> Finally, why don't you give a try to GlorpDBX + SqueakDBX ?   It works
> pretty well and has good performance.
>
> I hope this helps. Remember I am not a native postgresql driver guru.
> Perhaps you can ask also in squeak-dev or pharo mailing lists.
>
> Best,
>
> Mariano
>
>
>> I am using the latest Pharo image, with the latest Pharo-Glorp package,
>> and the newest Postgres driver. I think this is the relevant part of the
>> stack trace :-
>>
>>
>> PGConnection(Object)>>error:
>> Receiver: a PGConnection
>> Arguments and temporary variables:
>>  aString: 'Connection not valid'
>> Receiver's instance variables:
>>  trace: 0
>> state: #Terminated
>>  events: an OrderedCollection()
>> socket: nil
>>  readBuffer: 'PblankT id ��name �$password �6client...etc...
>> readIndex: 384
>>  lastReadIndex: 384
>> writeBuffer: nil
>>  processId: 28132
>> secretKey: 1795051851
>>  sql: 'SELECT t1.id, t1.name, t1.password, t1.client, t1.role, t1.mobile,
>> t1.ema...etc...
>>  functionCallOid: nil
>> functionCallArgs: nil
>>  copyStream: nil
>> result: a PGResult
>>  connectionArgs: a PGConnectionArgs
>> notificationSubscribers: nil
>>  fieldConverters: an IdentityDictionary(16->[closure] in PGConnection
>> class>>boo...etc...
>>  sqlStringConverter: [closure] in PGConnection>>clientEncoding:
>> receivingTextConverter: an UTF8TextConverter
>>
>> PGConnection>>execute:
>> Receiver: a PGConnection
>> Arguments and temporary variables:
>>  sqlString: 'SELECT t1.id, t1.typename, t1.description,
>> t1.selectioncount, t1.pr...etc...
>>  Receiver's instance variables:
>> trace: 0
>>  state: #Terminated
>> events: an OrderedCollection()
>>  socket: nil
>> readBuffer: 'PblankT id ��name �$password �6client...etc...
>>  readIndex: 384
>> lastReadIndex: 384
>>  writeBuffer: nil
>> processId: 28132
>>  secretKey: 1795051851
>> sql: 'SELECT t1.id, t1.name, t1.password, t1.client, t1.role, t1.mobile,
>> t1.ema...etc...
>>  functionCallOid: nil
>> functionCallArgs: nil
>>  copyStream: nil
>> result: a PGResult
>>  connectionArgs: a PGConnectionArgs
>> notificationSubscribers: nil
>>  fieldConverters: an IdentityDictionary(16->[closure] in PGConnection
>> class>>boo...etc...
>>  sqlStringConverter: [closure] in PGConnection>>clientEncoding:
>> receivingTextConverter: an UTF8TextConverter
>>
>> SqueakDatabaseAccessor>>basicExecuteSQLString:
>> Receiver: a SqueakDatabaseAccessor
>> Arguments and temporary variables:
>>  aString: 'SELECT t1.id, t1.typename, t1.description, t1.selectioncount,
>> t1.prio...etc...
>>  result: nil
>> rowCollection: nil
>>  Receiver's instance variables:
>> connection: a PGConnection
>>  currentLogin: a Login(a PostgreSQLPlatform, 'postgres', '847129',
>> 'localhost_ju...etc...
>>  logging: true
>> reusePreparedStatements: nil
>>  deniedCommands: nil
>> mutex: a Semaphore()
>>  dependents: nil
>> isInTransaction: false
>>
>> Any help would be appreciated, as this is stopping me from going to a Beta
>> test at the moment.
>>
>> Thanks,
>>
>>
>>
>> --
>> -JT
>>
>>
>>
>> _______________________________________________
>> SqueakDBX mailing list
>> SqueakDBX at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeakdbx/attachments/20090923/05bc4015/attachment.htm


More information about the SqueakDBX mailing list