[SqueakDBX] Connection not Valid problem

John Toohey jt at parspro.com
Sun Oct 4 15:22:07 UTC 2009


Yes, it was working fine with Glorp + the native driver. This is the Glorp
debug :-Begin Transaction
select nextval('TOURNAMENTMARKETS_id_SEQ') from pg_attribute limit 1
INSERT INTO TOURNAMENTS
(bookmaker,event,name,status,fee,prizewin,prizeplace,payout,buyin,opentime,closetime,tournamenttype,maxpunters,odds,favourite,version)
 VALUES (1,1,'T-XY','Unpublished',5,0,0,100,false,'2009-10-04
12:00:00','2009-10-04 12:00:00','Pari-Mutual',100,NULL,NULL,1)10:46:02 am -
GlorpDatabaseWriteError: RECOVERABLE OpenDBX: ERROR:  null value in column
"id" violates not-null constraint
Rollback Transaction

The nextval function is being passed the wrong sequence table name, it
should be TOURNAMENT_id_SEQ. This is the save code :-

status ifTrue:[
markets := nil.
[
self session dataStore commit: [self session dataStore register:
tournament].
self session dataStore refresh: tournament
]ifError:[
:error | JulietLogger log: error. status := false. self halt]
].

And this is the table descriptor :-

tableForTOURNAMENTS: aTable
|bookieId oddsTableId eventId|

    (aTable createFieldNamed: #id type: platform sequence) bePrimaryKey.
    bookieId := aTable createFieldNamed: #bookmaker type: platform int4.
    oddsTableId := aTable createFieldNamed: #oddstable type: platform int4.
    eventId := aTable createFieldNamed: #event type: platform int4.

aTable
  createFieldNamed: #name type: (platform varchar: 32);
  createFieldNamed: #status type: (platform varchar: 32);
       createFieldNamed: #fee type: (platform integer);
       createFieldNamed: #prizewin type: (platform integer);
       createFieldNamed: #prizeplace type: (platform integer);
       createFieldNamed: #payout type: (platform integer);
   createFieldNamed: #buyin type: (platform boolean);
createFieldNamed: #opentime type: (platform timestamp);
createFieldNamed: #closetime type: (platform timestamp);
createFieldNamed: #tournamenttype type: (platform varchar: 32);
       createFieldNamed: #maxpunters type: (platform integer);
       createFieldNamed: #odds type: (platform integer);
createFieldNamed: #favourite type: (platform varchar: 4);
createFieldNamed: #version type: (platform versionFieldFor: platform int4);
addForeignKeyFrom: bookieId
           to: ((self tableNamed: #BOOKMAKERS) fieldNamed: 'id');
addForeignKeyFrom: eventId
           to: ((self tableNamed: #EVENTS) fieldNamed: 'id');
addForeignKeyFrom: oddsTableId
           to: ((self tableNamed: #ODDSTABLES) fieldNamed: 'id').
(aTable fieldNamed: 'version') beLockKey


Its very strange, as it only seems to be this table that is causing the
problem.

On Sat, Oct 3, 2009 at 19:05, Mariano Martinez Peck
<marianopeck at gmail.com>wrote:

>
>
> On Sat, Oct 3, 2009 at 1:39 PM, John Toohey <jt at parspro.com> wrote:
>
>> Okay, I think now I know what is going on. In my Seaside app, I allow the
>> user to logout, and this method disconnects from the DB, and expires the
>> Seaside session. I also have an expiration timeout set on the session. I
>> think that Seaside is sending me a #unregistered message, after I have
>> logged back in, and this method is calling #disconnect. I have removed some
>> of the session handling code, and things are working a lot better now.
>>
>
> Excellent! Good research :)
>
>
>> However, I have know noticed something that was working fine with Glorp,
>> and seems broken now.
>>
>
> when was woring? when you used Glorp + PostgreSQL native driver ? or before
> doing the changes you said about the seaside session ?
>
>
>> One of my classes that inserts new records in the DB is missing the id
>> (sequence, pk) field. I can see from the GlorpDBX debug, that a call is made
>> to Postgres for the next sequence number, but the insert statement is
>> missing the id field. Here is the trace messages :-
>>
>> odbx_query: called with values: handle = 380908736 query = select
>> nextval('TOURNAMENTMARKETS_id_SEQ') from pg_attribute limit 1
>> odbx_result: called with values: handle = 380908736 chunk = 0
>> odbx_result call return: 3
>> odbx_result resultSet handle returned: 381100928
>> odbx_column_count: called with values: resultSet handle = 381100928
>> odbx_row_fetch: called with values: resultSet handle = 381100928
>> odbx_row_fetch call returned 1
>> odbx_row_fetch: called with values: resultSet handle = 381100928
>> odbx_row_fetch call returned 0
>> odbx_result_finish: called with values: resultSet handle = 381100928
>> odbx_result: called with values: handle = 380908736 chunk = 0
>> odbx_result call return: 0
>> odbx_result resultSet handle returned: 0
>> odbx_query: called with values: handle = 380908736 query = INSERT INTO
>> TOURNAMENTS
>> (bookmaker,event,name,status,fee,prizewin,prizeplace,payout,buyin,opentime,closetime,tournamenttype,maxpunters,odds,favourite,version)
>>  VALUES (1,1,'Tourney-A1','Unpublished',5,0,0,76,false,'2009-10-03
>> 12:00:00','2009-10-03 12:00:00','Pari-Mutual',90,NULL,NULL,1)
>> odbx_result: called with values: handle = 380908736 chunk = 0
>> odbx_result call return: -1
>> odbx_result: called with values: handle = 380908736 chunk = 0
>> odbx_result call return: 0
>> odbx_result resultSet handle returned: 0
>> 12:27:22 pm - GlorpDatabaseWriteError: RECOVERABLE OpenDBX: ERROR:  null
>> value in column "id" violates not-null constraint
>>
>>
>
> This is weird. The query select nextval('TOURNAMENTMARKETS_id_SEQ') from
> pg_attribute limit 1
> works perfect using SqueakDBX (I have just tested it).
>
> Now I wonder why Glorp didn't put the id in the query...do you know if this
> was working when you were using Glorp + PostgreSQL native driver ? Just to
> see where the cause of the problem can be. Perhaps it is a GLorp related
> problem that we should ask in Glorp mailing list.
>
> Do you know that there is also (I think) some debug to enable in Glorp ?
> because what you send us is the SqueakDBX driver log, not Glorp.
>
> Can you send us the mappings for the class/table TOURNAMENTS ?
>
> which is the message you are sending to Glorp so that it generates the
> insert ?
>
> Best,
>
> Mariano
>
>
>
>>
>> On Thu, Oct 1, 2009 at 15:33, Mariano Martinez Peck <
>> marianopeck at gmail.com> wrote:
>>
>>> I fordward the email to the list.
>>>
>>> On Thu, Oct 1, 2009 at 4:05 PM, John Toohey <jt at parspro.com> wrote:
>>>
>>>> Hey,Haven't loaded the latest yet, as I'm still debugging my connection
>>>> timeout issue.
>>>>
>>>
>>> Ok, let's go step by step :)
>>>
>>>
>>>> No closer to the cause, but I have a better idea of what is happening
>>>> now. In all my methods in my DB class, I call a method to get the
>>>> glorpSession. In this method, I have a check to see if I am still logged in,
>>>> and break if I am not. Now I see that, as I lazily initialize objects that
>>>> are referred by foreign keys, the Glorp Proxy will make a DB call on my
>>>> behalf, whenever I reference one of these objects. The Proxy calls
>>>> #basicExecuteSQLString in the DataAccessor, and that calls #execute in
>>>> DBXConnection. That is where the code check if the connection is open, and
>>>> fails there.
>>>>
>>>> Do you have any suggestions about how I can hook into that, and perhaps
>>>> try to re-connect on that error?
>>>>
>>>>
>>>>
>>> Great progress!!!  I am glad at least that our error handling is working
>>> properly ;)
>>>
>>> The thing is that any thing you do, is a kind of hack. For example, I
>>> cannot reopen a connection in SqueakDBX in that case.  Perhaps that change
>>> should be done in Glorp?
>>>
>>> A hack could be to reopen the connection in #basicExecuteSQLString when
>>> that errors happen. Remember you already have a reOpen method in
>>> DBXConnection. I can add a reConnect if necessary. They good this that this
>>> is very easy, as you don't need to send the querySettings again as the
>>> connection already has it as an instance variable :)
>>>
>>> Anyway, I don't understand something. The same connection was perfect
>>> some time ago it fails, Ok ?   so...if it then disconnect or close, who
>>> closes that ? the GC? you ? glorp ?
>>> We don't handle timeouts or something like that and close the connection.
>>>
>>>
>>> Cheers,
>>>
>>> Mariano
>>>
>>>
>>>
>>>>
>>>> On Wed, Sep 30, 2009 at 11:34, Mariano Martinez Peck <
>>>> marianopeck at gmail.com> wrote:
>>>>
>>>>> Of course it would be excellent if you can run all tests not only the
>>>>> one with the problem so that to be sure I didn't break something else ;)
>>>>>
>>>>> cheers,
>>>>>
>>>>> mariano
>>>>>
>>>>> On Wed, Sep 30, 2009 at 12:16 PM, Mariano Martinez Peck <
>>>>> marianopeck at gmail.com> wrote:
>>>>>
>>>>>> Done:
>>>>>>
>>>>>> Name: OpenDBX-Core-MarianoMartinezPeck.231
>>>>>> Author: MarianoMartinezPeck
>>>>>> Time: 30 September 2009, 12:14:49 pm
>>>>>> UUID: 780ee5d8-3d5f-0e46-b3c0-d22ca512b498
>>>>>> Ancestors: OpenDBX-Core-Mariano.230
>>>>>>
>>>>>> Fix to possible bug. Now DBXPlatform uses the timeout of the
>>>>>> QuerySetttings instead of the default.
>>>>>>
>>>>>>
>>>>>> Just download that version from monticello.
>>>>>>
>>>>>> However, here at work I only have Sqlite3. So, I should test with all
>>>>>> backend in Linux and Windows tonight at home.
>>>>>>
>>>>>> Tell me if it works.
>>>>>>
>>>>>> Best
>>>>>>
>>>>>> Mariano
>>>>>>
>>>>>>
>>>>>> On Wed, Sep 30, 2009 at 11:23 AM, John Toohey <jt at parspro.com> wrote:
>>>>>>
>>>>>>> Good, let me know when there is an update, and how to install it, and
>>>>>>> I can test again.
>>>>>>>
>>>>>>> On Wed, Sep 30, 2009 at 09:37, Mariano Martinez Peck <
>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>
>>>>>>>> Thanks John. I think you found a bug ;)    The weird thing is that I
>>>>>>>> cannot reproduce it here. Perhaps it is because of the client library for
>>>>>>>> Mac. It's the only difference I see.
>>>>>>>>
>>>>>>>> Tonight I will test the fix I have just did and if everything is ok
>>>>>>>> I will commit it.
>>>>>>>>
>>>>>>>> Thank you very much.
>>>>>>>>
>>>>>>>> On Wed, Sep 30, 2009 at 10:02 AM, John Toohey <jt at parspro.com>wrote:
>>>>>>>>
>>>>>>>>> This is the full stack :-
>>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #asMiliseconds
>>>>>>>>> Receiver: nil
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  aMessage: asMiliseconds
>>>>>>>>> exception: MessageNotUnderstood: receiver of "asMiliseconds" is
>>>>>>>>> nil
>>>>>>>>>  resumeValue: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> [] in [] in
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aConnection: 0
>>>>>>>>>  aQuerySettings: 1
>>>>>>>>> returnCode: a DBXConnection
>>>>>>>>>  handle: a DBXQuerySettings
>>>>>>>>> code: #(1)
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>nextResultSet:querySettings:onReturn:
>>>>>>>>>  Receiver: a DBXPostgresPlatform
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aConnection: a DBXConnection
>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>> aBlock: [closure] in [] in
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultS...etc...
>>>>>>>>>  handle: 0
>>>>>>>>> err: 1
>>>>>>>>>  handleArray: a WordArray(0)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>
>>>>>>>>> [] in
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aConnection: a DBXConnection
>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>> returnCode: #(1)
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>
>>>>>>>>> BlockClosure>>doWhileTrue:
>>>>>>>>> Receiver: [closure] in
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> conditionBlock: [closure] in
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResul...etc...
>>>>>>>>>  result: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  outerContext:
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySetti...etc...
>>>>>>>>>  startpc: 91
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  aConnection: a DBXConnection
>>>>>>>>> aQuerySettings: a DBXQuerySettings
>>>>>>>>>  returnCode: #(1)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>executeStatement:on:querySettings:
>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aString: 'select * from student'
>>>>>>>>>  aConnection: a DBXConnection
>>>>>>>>> aQuerySettings: a DBXQuerySettings
>>>>>>>>>  err: 0
>>>>>>>>> result: nil
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>
>>>>>>>>> DBXConnection>>execute:querySettings:
>>>>>>>>> Receiver: a DBXConnection
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aString: 'select * from student'
>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>> aResult: nil
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> platform: a DBXPostgresPlatform
>>>>>>>>>  settings: a DBXConnectionSettings
>>>>>>>>> handle: 3118944
>>>>>>>>>  open: a ValueHolder
>>>>>>>>> connected: a ValueHolder
>>>>>>>>>  result: nil
>>>>>>>>>
>>>>>>>>> DBXQueryTimeoutTest>>testNoTimeout
>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> conn: a DBXConnection
>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>> rows: 5000
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>> connection: a DBXConnection
>>>>>>>>>
>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>performTest
>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>> connection: a DBXConnection
>>>>>>>>>
>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>> connection: a DBXConnection
>>>>>>>>>
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> Receiver: [closure] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  aBlock: [closure] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>> returnValue: nil
>>>>>>>>>  b: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  outerContext: DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>> startpc: 33
>>>>>>>>>  numArgs: 0
>>>>>>>>>
>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  testSelector: #testNoTimeout
>>>>>>>>> facility: a DBXPostgreFacility
>>>>>>>>>  connection: a DBXConnection
>>>>>>>>>
>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>  Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>> connection: nil
>>>>>>>>>
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> Receiver: [closure] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  aBlock: [closure] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>> returnValue: nil
>>>>>>>>>  b: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  outerContext: DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>> startpc: 62
>>>>>>>>>  numArgs: 0
>>>>>>>>>
>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  testSelector: #testNoTimeout
>>>>>>>>> facility: a DBXPostgreFacility
>>>>>>>>>  connection: nil
>>>>>>>>>
>>>>>>>>> [] in TestRunner>>debugSuite:
>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>  classIndex: 0
>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>  failedList: #()
>>>>>>>>> failedSelected: nil
>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>  previousRun: nil
>>>>>>>>>
>>>>>>>>> OrderedCollection>>do:
>>>>>>>>> Receiver: an OrderedCollection(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in TestRunner>>debugSuite:
>>>>>>>>>  index: 3
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  array: an Array(nil nil DBXQueryTimeoutTest>>#testNoTimeout nil
>>>>>>>>> nil nil nil nil...etc...
>>>>>>>>>  firstIndex: 3
>>>>>>>>> lastIndex: 3
>>>>>>>>>
>>>>>>>>> [] in TestRunner>>basicRunSuite:do:
>>>>>>>>> Receiver: a TestRunner
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  aTestSuite: a TestSuite
>>>>>>>>> aBlock: [closure] in TestRunner>>debugSuite:
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>  classIndex: 0
>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>  failedList: #()
>>>>>>>>> failedSelected: nil
>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>  previousRun: nil
>>>>>>>>>
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> Receiver: [closure] in TestRunner>>basicRunSuite:do:
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in TestRunner>>basicRunSuite:do:
>>>>>>>>>  returnValue: nil
>>>>>>>>> b: nil
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> outerContext: TestRunner>>basicRunSuite:do:
>>>>>>>>>  startpc: 51
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> TestRunner>>basicRunSuite:do:
>>>>>>>>> Receiver: a TestRunner
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  aTestSuite: a TestSuite
>>>>>>>>> aBlock: [closure] in TestRunner>>debugSuite:
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>  classIndex: 0
>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>  failedList: #()
>>>>>>>>> failedSelected: nil
>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>  previousRun: nil
>>>>>>>>>
>>>>>>>>> TestRunner>>debugSuite:
>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aTestSuite: a TestSuite
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>  classIndex: 0
>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>  failedList: #()
>>>>>>>>> failedSelected: nil
>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>  previousRun: nil
>>>>>>>>>
>>>>>>>>> TestRunner>>debug:
>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aTestCase: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>  classIndex: 0
>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>  failedList: #()
>>>>>>>>> failedSelected: nil
>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>  previousRun: nil
>>>>>>>>>
>>>>>>>>> TestRunner>>errorSelected:
>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> anInteger: 1
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>  classIndex: 0
>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>  failedList: #()
>>>>>>>>> failedSelected: nil
>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>  previousRun: nil
>>>>>>>>>
>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  anInteger: 1
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>  color: Color white
>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:  (layoutFrame
>>>>>>>>> -> a LayoutF...etc...
>>>>>>>>>  borderWidth: 1
>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>  model: a TestRunner
>>>>>>>>> slotName: nil
>>>>>>>>>  open: false
>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>> retractableScrollBar: false
>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>> hasFocus: false
>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>  getListSelector: #errorList
>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>  getListElementSelector: nil
>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>  autoDeselect: true
>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>> potentialDropRow: nil
>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>  dragItemSelector: nil
>>>>>>>>> dropItemSelector: nil
>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>
>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>mouseUp:
>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  event: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>> row: 1
>>>>>>>>>  mdr: 1
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>  color: Color white
>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:  (layoutFrame
>>>>>>>>> -> a LayoutF...etc...
>>>>>>>>>  borderWidth: 1
>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>  model: a TestRunner
>>>>>>>>> slotName: nil
>>>>>>>>>  open: false
>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>> retractableScrollBar: false
>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>> hasFocus: false
>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>  getListSelector: #errorList
>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>  getListElementSelector: nil
>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>  autoDeselect: true
>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>> potentialDropRow: nil
>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>  dragItemSelector: nil
>>>>>>>>> dropItemSelector: nil
>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>
>>>>>>>>> PluggableListMorphPlus(Morph)>>handleMouseUp:
>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>  color: Color white
>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:  (layoutFrame
>>>>>>>>> -> a LayoutF...etc...
>>>>>>>>>  borderWidth: 1
>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>  model: a TestRunner
>>>>>>>>> slotName: nil
>>>>>>>>>  open: false
>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>> retractableScrollBar: false
>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>> hasFocus: false
>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>  getListSelector: #errorList
>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>  getListElementSelector: nil
>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>  autoDeselect: true
>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>> potentialDropRow: nil
>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>  dragItemSelector: nil
>>>>>>>>> dropItemSelector: nil
>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>
>>>>>>>>> MouseButtonEvent>>sentTo:
>>>>>>>>> Receiver: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> anObject: a PluggableListMorphPlus(3968)
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> timeStamp: 57402925
>>>>>>>>>  source: a HandMorph(3216)
>>>>>>>>> windowIndex: nil
>>>>>>>>>  type: #mouseUp
>>>>>>>>> buttons: 0
>>>>>>>>>  position: 1546 at 408
>>>>>>>>> handler: nil
>>>>>>>>>  wasHandled: true
>>>>>>>>> whichButton: 4
>>>>>>>>>
>>>>>>>>> PluggableListMorphPlus(Morph)>>handleEvent:
>>>>>>>>> Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>  color: Color white
>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:  (layoutFrame
>>>>>>>>> -> a LayoutF...etc...
>>>>>>>>>  borderWidth: 1
>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>  model: a TestRunner
>>>>>>>>> slotName: nil
>>>>>>>>>  open: false
>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>> retractableScrollBar: false
>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>> hasFocus: false
>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>  getListSelector: #errorList
>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>  getListElementSelector: nil
>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>  autoDeselect: true
>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>> potentialDropRow: nil
>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>  dragItemSelector: nil
>>>>>>>>> dropItemSelector: nil
>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>
>>>>>>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>>>>>>>  Receiver: a MorphicEventDispatcher
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>  aMorph: a PluggableListMorphPlus(3968)
>>>>>>>>> localEvt: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>  index: 2
>>>>>>>>> child: a TransformMorph(3663)
>>>>>>>>>  morphs: an Array(a TransformMorph(3663))
>>>>>>>>> inside: true
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> lastType: #mouseUp
>>>>>>>>>  lastDispatch: #dispatchDefault:with:
>>>>>>>>>
>>>>>>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>>>>>>>  Receiver: a MorphicEventDispatcher
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>  aMorph: a PluggableListMorphPlus(3968)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  lastType: #mouseUp
>>>>>>>>> lastDispatch: #dispatchDefault:with:
>>>>>>>>>
>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:using:
>>>>>>>>> Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>> defaultDispatcher: a MorphicEventDispatcher
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>  owner: a PluggableStandardWindow(1639)
>>>>>>>>> submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>  fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>> color: Color white
>>>>>>>>>  extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>  borderWidth: 1
>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>  model: a TestRunner
>>>>>>>>> slotName: nil
>>>>>>>>>  open: false
>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>> retractableScrollBar: false
>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>> hasFocus: false
>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>  getListSelector: #errorList
>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>  getListElementSelector: nil
>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>  autoDeselect: true
>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>> potentialDropRow: nil
>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>  dragItemSelector: nil
>>>>>>>>> dropItemSelector: nil
>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>
>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:
>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>  color: Color white
>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:  (layoutFrame
>>>>>>>>> -> a LayoutF...etc...
>>>>>>>>>  borderWidth: 1
>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>  model: a TestRunner
>>>>>>>>> slotName: nil
>>>>>>>>>  open: false
>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>> retractableScrollBar: false
>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>> hasFocus: false
>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>  getListSelector: #errorList
>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>  getListElementSelector: nil
>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>  autoDeselect: true
>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>> potentialDropRow: nil
>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>  dragItemSelector: nil
>>>>>>>>> dropItemSelector: nil
>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>
>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>handleFocusEvent:
>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>  color: Color white
>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:  (layoutFrame
>>>>>>>>> -> a LayoutF...etc...
>>>>>>>>>  borderWidth: 1
>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>  model: a TestRunner
>>>>>>>>> slotName: nil
>>>>>>>>>  open: false
>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>> retractableScrollBar: false
>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>> hasFocus: false
>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>  getListSelector: #errorList
>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>  getListElementSelector: nil
>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>  autoDeselect: true
>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>> potentialDropRow: nil
>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>  dragItemSelector: nil
>>>>>>>>> dropItemSelector: nil
>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>
>>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>  Receiver: a HandMorph(3216)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>>  Receiver's instance variables:
>>>>>>>>> bounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>>  owner: a PasteUpMorph(1622) [world]
>>>>>>>>> submorphs: #()
>>>>>>>>>  fullBounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>> color: Color blue
>>>>>>>>>  extension: a MorphExtension (539) [eventHandler = an
>>>>>>>>> EventHandler]
>>>>>>>>> mouseFocus: nil
>>>>>>>>>  keyboardFocus: nil
>>>>>>>>> eventListeners: nil
>>>>>>>>>  mouseListeners: nil
>>>>>>>>> keyboardListeners: nil
>>>>>>>>>  mouseClickState: nil
>>>>>>>>> mouseOverHandler: a MouseOverHandler
>>>>>>>>>  lastMouseEvent: [1071 at 619 1071 at 619 mouseMove 57619819 nil]
>>>>>>>>> targetOffset: 188 at 12
>>>>>>>>>  damageRecorder: a DamageRecorder
>>>>>>>>> cacheCanvas: nil
>>>>>>>>>  cachedCanvasHasHoles: true
>>>>>>>>> temporaryCursor: nil
>>>>>>>>>  temporaryCursorOffset: nil
>>>>>>>>> hardwareCursor: nil
>>>>>>>>>  hasChanged: true
>>>>>>>>> savedPatch: nil
>>>>>>>>>  userInitials: ''
>>>>>>>>> lastEventBuffer: #(1 57619819 1071 619 0 0 0 1)
>>>>>>>>>  lastKeyScanCode: 36
>>>>>>>>> combinedChar: nil
>>>>>>>>>
>>>>>>>>> [] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> Receiver: a PasteUpMorph(1622) [world]
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> bounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>>  owner: nil
>>>>>>>>> submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(3955) a
>>>>>>>>> PluggableStanda...etc...
>>>>>>>>>  fullBounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>> color: Color gray
>>>>>>>>>  extension: a MorphExtension (2543) [eventHandler = an
>>>>>>>>> EventHandler]  [other:  (...etc...
>>>>>>>>>  borderWidth: 0
>>>>>>>>> borderColor: (Color r: 0.5 g: 0.5 b: 0.5)
>>>>>>>>>  presenter: a Presenter (1246)
>>>>>>>>> model: a MorphicModel(1926)
>>>>>>>>>  cursor: 1
>>>>>>>>> padding: 3
>>>>>>>>>  backgroundMorph: nil
>>>>>>>>> isPartsBin: nil
>>>>>>>>>  autoLineLayout: false
>>>>>>>>> indicateCursor: nil
>>>>>>>>>  resizeToFit: nil
>>>>>>>>> wantsMouseOverHalos: nil
>>>>>>>>>  worldState: a WorldState
>>>>>>>>> griddingOn: nil
>>>>>>>>>
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>> Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  exception: Error
>>>>>>>>> handlerAction: [closure] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>  handlerActive: false
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  outerContext: PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> startpc: 67
>>>>>>>>>  numArgs: 0
>>>>>>>>>
>>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> Receiver: a PasteUpMorph(1622) [world]
>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>  priorWorld: a PasteUpMorph(1622) [world]
>>>>>>>>> priorHand: a HandMorph(3216)
>>>>>>>>>  priorEvent: [1546 at 408 mouseOver red nil nil]
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>> owner: nil
>>>>>>>>>  submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(3955) a
>>>>>>>>> PluggableStanda...etc...
>>>>>>>>>  fullBounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>> color: Color gray
>>>>>>>>>  extension: a MorphExtension (2543) [eventHandler = an
>>>>>>>>> EventHandler]  [other:  (...etc...
>>>>>>>>>  borderWidth: 0
>>>>>>>>> borderColor: (Color r: 0.5 g: 0.5 b: 0.5)
>>>>>>>>>  presenter: a Presenter (1246)
>>>>>>>>> model: a MorphicModel(1926)
>>>>>>>>>  cursor: 1
>>>>>>>>> padding: 3
>>>>>>>>>  backgroundMorph: nil
>>>>>>>>> isPartsBin: nil
>>>>>>>>>  autoLineLayout: false
>>>>>>>>> indicateCursor: nil
>>>>>>>>>  resizeToFit: nil
>>>>>>>>> wantsMouseOverHalos: nil
>>>>>>>>>  worldState: a WorldState
>>>>>>>>> griddingOn: nil
>>>>>>>>>
>>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>> Receiver: a HandMorph(3216)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>> focusHolder: a PluggableListMorphPlus(3968)
>>>>>>>>>  aBlock: [closure] in HandMorph>>sendMouseEvent:
>>>>>>>>> w: a PasteUpMorph(1622) [world]
>>>>>>>>>  result: #(nil)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>  bounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>> owner: a PasteUpMorph(1622) [world]
>>>>>>>>>  submorphs: #()
>>>>>>>>> fullBounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>>  color: Color blue
>>>>>>>>> extension: a MorphExtension (539) [eventHandler = an
>>>>>>>>> EventHandler]
>>>>>>>>>  mouseFocus: nil
>>>>>>>>> keyboardFocus: nil
>>>>>>>>>  eventListeners: nil
>>>>>>>>> mouseListeners: nil
>>>>>>>>>  keyboardListeners: nil
>>>>>>>>> mouseClickState: nil
>>>>>>>>>  mouseOverHandler: a MouseOverHandler
>>>>>>>>> lastMouseEvent: [1071 at 619 1071 at 619 mouseMove 57619819 nil]
>>>>>>>>>  targetOffset: 188 at 12
>>>>>>>>> damageRecorder: a DamageRecorder
>>>>>>>>>  cacheCanvas: nil
>>>>>>>>> cachedCanvasHasHoles: true
>>>>>>>>>  temporaryCursor: nil
>>>>>>>>> temporaryCursorOffset: nil
>>>>>>>>>  hardwareCursor: nil
>>>>>>>>> hasChanged: true
>>>>>>>>>  savedPatch: nil
>>>>>>>>> userInitials: ''
>>>>>>>>>  lastEventBuffer: #(1 57619819 1071 619 0 0 0 1)
>>>>>>>>> lastKeyScanCode: 36
>>>>>>>>>  combinedChar: nil
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --- The full stack ---
>>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #asMiliseconds
>>>>>>>>> [] in [] in
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>nextResultSet:querySettings:onReturn:
>>>>>>>>> [] in
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>> BlockClosure>>doWhileTrue:
>>>>>>>>>
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>
>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>executeStatement:on:querySettings:
>>>>>>>>> DBXConnection>>execute:querySettings:
>>>>>>>>> DBXQueryTimeoutTest>>testNoTimeout
>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>performTest
>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>> [] in TestRunner>>debugSuite:
>>>>>>>>> OrderedCollection>>do:
>>>>>>>>> [] in TestRunner>>basicRunSuite:do:
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> TestRunner>>basicRunSuite:do:
>>>>>>>>> TestRunner>>debugSuite:
>>>>>>>>> TestRunner>>debug:
>>>>>>>>> TestRunner>>errorSelected:
>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>mouseUp:
>>>>>>>>> PluggableListMorphPlus(Morph)>>handleMouseUp:
>>>>>>>>> MouseButtonEvent>>sentTo:
>>>>>>>>> PluggableListMorphPlus(Morph)>>handleEvent:
>>>>>>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>>>>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:using:
>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:
>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>handleFocusEvent:
>>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>> [] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>  - - - - - - - - - - - - - - -
>>>>>>>>> - - - - - - - - - - - - - - - - - -
>>>>>>>>> HandMorph>>sendEvent:focus:clear:
>>>>>>>>> HandMorph>>sendMouseEvent:
>>>>>>>>> HandMorph>>handleEvent:
>>>>>>>>> HandMorph>>processEvents
>>>>>>>>> [] in WorldState>>doOneCycleNowFor:
>>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>>> WorldState>>handsDo:
>>>>>>>>> WorldState>>doOneCycleNowFor:
>>>>>>>>> WorldState>>doOneCycleFor:
>>>>>>>>> PasteUpMorph>>doOneCycle
>>>>>>>>> [] in Project class>>spawnNewProcess
>>>>>>>>> [] in BlockClosure>>newProcess
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Sep 29, 2009 at 23:14, Mariano Martinez Peck <
>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, Sep 25, 2009 at 12:07 PM, John Toohey <jt at parspro.com>wrote:
>>>>>>>>>>
>>>>>>>>>>> Had to rebuild a new image, changes file full, and Pharo still
>>>>>>>>>>> cannot condense a change file. So, now I have a refresh image with just
>>>>>>>>>>> GlorpDBX installed. Ran the tests and have 94 passed and one failure. The
>>>>>>>>>>> failed test is DBXQueryNoTimeout and the failing method is #testNoTimeOut.
>>>>>>>>>>> The DBXQuerySetting object's timeout property is Nil, and this throws a DNU
>>>>>>>>>>> exception.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> John: I am seeing this test but is green for me here in Linux and
>>>>>>>>>> Windows :(
>>>>>>>>>> I mean, I set a nil to the timeout property but I never send a
>>>>>>>>>> message to that object. I just send a null trough FFI.
>>>>>>>>>>
>>>>>>>>>> Can you tell me where does the DNU occur, who DNU a message and
>>>>>>>>>> which message was not understood ?   It would be excellent you can send me
>>>>>>>>>> the stacktrace.
>>>>>>>>>>
>>>>>>>>>> Thanks a lot for the testing!
>>>>>>>>>>
>>>>>>>>>> Mariano
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Going to try to install Seaside now, and hopefully my own app
>>>>>>>>>>> then.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Sep 25, 2009 at 09:38, Mariano Martinez Peck <
>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Sep 25, 2009 at 12:21 PM, Mariano Martinez Peck <
>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Sep 25, 2009 at 12:04 PM, John Toohey <jt at parspro.com>wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I now have a new image with Seaside 3 installed, however when
>>>>>>>>>>>>>> I run the follow :-
>>>>>>>>>>>>>> Installer ss project: 'SqueakDBX'; install:
>>>>>>>>>>>>>> 'SqueakDBXPharoLoader'.
>>>>>>>>>>>>>> SqueakDBXPharoLoader loadGlorpDBX
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> This package depends on the following classes:
>>>>>>>>>>>>>>   PGConnection
>>>>>>>>>>>>>> You must resolve these dependencies before you will be able to
>>>>>>>>>>>>>> load these definitions:
>>>>>>>>>>>>>>   PGConnection classSide>>buildDefaultFieldConverters
>>>>>>>>>>>>>>   PGConnection classSide>>buildStateTransitionTable
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Do I need to install the Postgres driver before I do this? I
>>>>>>>>>>>>>> thought it was part of the GlorpDBX install.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yeah, I know :(
>>>>>>>>>>>>> It is difficult to explain but there is some places of Glorp
>>>>>>>>>>>>> which still reference to PGConnection. However, it is not used. Don't worry.
>>>>>>>>>>>>> Do a "proceed" and everything will be ok.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Ok. I found the problem. It's time to restrucutre some packages
>>>>>>>>>>>> about Glorp.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> I will then try to see how to fix this.
>>>>>>>>>>>>>
>>>>>>>>>>>>> what happened to SqueakDBX tests and the amount of connections?
>>>>>>>>>>>>> did it work my commit ?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Here is a summary of the things we did to GLorp and how to run
>>>>>>>>>>>>> GlorpDBX tests:
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://squeakdbx.smallworks.com.ar/GLORP integration
>>>>>>>>>>>>>
>>>>>>>>>>>>> Ok, it was a secret that webpage. It is our own website with
>>>>>>>>>>>>> seaside and pier to replace the swiki :)   We will then do the public ANN
>>>>>>>>>>>>> hahaha.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 21:16, Mariano Martinez Peck <
>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 10:12 PM, John Toohey <
>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I am running the OpenDBX-Core tests both from the TestRunner
>>>>>>>>>>>>>>>> and the OBPackageBrowser. The tests run successfully until my DB runs out of
>>>>>>>>>>>>>>>> connections. Latest Pharo, and latest GlorpDBX installed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> John: I have just noticed that a lot of SqueakDBX tests don't
>>>>>>>>>>>>>>> release the DB connections, as you guessed. I have just commit. can you
>>>>>>>>>>>>>>> please test it and let me know ? of course, you must first reboot or kill
>>>>>>>>>>>>>>> all the active connections ;)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> "Name: OpenDBX-Core-Mariano.230
>>>>>>>>>>>>>>> Author: Mariano
>>>>>>>>>>>>>>> Time: 24 September 2009, 10:15:03 pm
>>>>>>>>>>>>>>> UUID: 19ce8340-3070-4495-a21d-cbe2b63aca0e
>>>>>>>>>>>>>>> Ancestors: OpenDBX-Core-HMC.229
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> There were a lot of SqueakDBX tests that don't release the
>>>>>>>>>>>>>>> connection after testing. So, this can result in a "Too many connections
>>>>>>>>>>>>>>> error". Now, all tests release connections."
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 20:52, Mariano Martinez Peck <
>>>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 3:13 PM, John Toohey <
>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Okay, I've installed SqueakGlorp into my existing image,
>>>>>>>>>>>>>>>>>> and added the symlink to the VM for openDBX. I can get up to 44 tests to
>>>>>>>>>>>>>>>>>> pass, but it seems that the tests are not releasing their DB connections, so
>>>>>>>>>>>>>>>>>> after a while the rest fail with a "Too many connections error"
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> These tests you are talking about are SqueakDBX tests or
>>>>>>>>>>>>>>>>> Glorp tests when using SqueakDBX as the driver ?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Is this how it should be for those tests? I am just
>>>>>>>>>>>>>>>>>> selecting the test package and selecting "run tests".
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I need to know which tests are you running, if
>>>>>>>>>>>>>>>>> OpenDBX-Core-Tests or GlorpTest. Anyway, tests should release connections.
>>>>>>>>>>>>>>>>> If this is not done, so we have a bug in our tests.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 12:24, Mariano Martinez Peck <
>>>>>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 3:06 PM, John Toohey <
>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> - I've managed to build it on a VMWare VM running
>>>>>>>>>>>>>>>>>>>> Ubunto, and using the --disable-utils switch, I've built it on OSX also.
>>>>>>>>>>>>>>>>>>>> However on both systems when I run the test suite I see this :-
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Excellent news!!! I tell you: there is an utility called
>>>>>>>>>>>>>>>>>>> odbx-sql that let you send queries trough OpenDBX. However, that utility
>>>>>>>>>>>>>>>>>>> requires external libraries which seem to have problems, at least in
>>>>>>>>>>>>>>>>>>> Windows. So, when we compile in Windows, we must disable that utility. But
>>>>>>>>>>>>>>>>>>> remember this is an utility, not OpenDBX core or feature. It is not
>>>>>>>>>>>>>>>>>>> important. I didn't know it has problems also with MacOS, so I will update
>>>>>>>>>>>>>>>>>>> the webpage. Thanks for the testing!!!!
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> `--> ./odbxtest -b pgsql -h localhost -p 5432 -d juliet
>>>>>>>>>>>>>>>>>>>> -u postgres -w postgres
>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_BASIC: 1
>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_LO: 0
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_API_VERSION: 10200
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_THREAD_SAFE: 1
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_TLS: 1
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_CONNECT_TIMEOUT: 1 (using)
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_MULTI_STATEMENTS: 1 (using)
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_PAGED_RESULTS: 0
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_COMPRESS: 0
>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_BASIC: 1
>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_LO: 0
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_API_VERSION: 10200
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_THREAD_SAFE: 1
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_TLS: 1
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_CONNECT_TIMEOUT: 1 (using)
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_MULTI_STATEMENTS: 1 (using)
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_PAGED_RESULTS: 0
>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_COMPRESS: 0
>>>>>>>>>>>>>>>>>>>> WARNING:  nonstandard use of \\ in a string literal
>>>>>>>>>>>>>>>>>>>> LINE 1: SELECT * FROM odbxtest WHERE col = 'a''''\\''b'
>>>>>>>>>>>>>>>>>>>>                                            ^
>>>>>>>>>>>>>>>>>>>> HINT:  Use the escape string syntax for backslashes,
>>>>>>>>>>>>>>>>>>>> e.g., E'\\'.
>>>>>>>>>>>>>>>>>>>> Error in odbx_result(): ERROR:  relation "odbxtest" does
>>>>>>>>>>>>>>>>>>>> not exist
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Error in odbx_result(): ERROR:  relation "odbxtest" does
>>>>>>>>>>>>>>>>>>>> not exist
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Not sure if this means there is a problem with the build
>>>>>>>>>>>>>>>>>>>> (I downloaded to latest one) or a problem with the test suite.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> As you guessed this seems to be a problem with the test
>>>>>>>>>>>>>>>>>>> suit, but the build is seems to be perfect. I will send this part to OpenDBX
>>>>>>>>>>>>>>>>>>> mailing list and see if I receive some help. Thanks for the report.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In order to continue and install GlorpDBX into my Pharo
>>>>>>>>>>>>>>>>>>>> image, do I need to build a new image, as my current one already has
>>>>>>>>>>>>>>>>>>>> Pharo-Glorp installed. I've never figured out how to uninstall packages in
>>>>>>>>>>>>>>>>>>>> Smalltalk.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Yeah. Me neither :(
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> But, what you can do is install just SqueakDBX in that
>>>>>>>>>>>>>>>>>>> image and run the SqueakDBX tests, using PostgreSQL to see if everything is
>>>>>>>>>>>>>>>>>>> ok. You should have all green tests. If you get this, I would really
>>>>>>>>>>>>>>>>>>> appreciate if you can make a binary for MacOS :)
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Then, you can take a new image and install GlorpDBX as
>>>>>>>>>>>>>>>>>>> explained in the wiki.  Most of the tests should be green. I say "most"
>>>>>>>>>>>>>>>>>>> because there are some that fails because of what I told you that we don't
>>>>>>>>>>>>>>>>>>> support large database fields.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Mariano
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 11:15, Mariano Martinez Peck <
>>>>>>>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 1:59 PM, John Toohey <
>>>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I'm currently trying to build openDBX on OSX. I've
>>>>>>>>>>>>>>>>>>>>>> finally found the postgres client libs and include files, and I've run
>>>>>>>>>>>>>>>>>>>>>> ./configure -with-backends="pgsql", but when I run make I get this error :-
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Excellent you are giving SqueakDBX at least a try. The
>>>>>>>>>>>>>>>>>>>>> real thing is this: The squeakDBX team is composed by 4 people. Only one has
>>>>>>>>>>>>>>>>>>>>> a Mac and he is very busy with his work. I have ALL databases working on
>>>>>>>>>>>>>>>>>>>>> Linux and Windows. And I have also prepared binaries for that because I can
>>>>>>>>>>>>>>>>>>>>> (dlls, .deb and .rpm). But I cannot do it with Mac because I don't have a
>>>>>>>>>>>>>>>>>>>>> mac and I don't know how binaries work on Mac. If you make it work, I would
>>>>>>>>>>>>>>>>>>>>> really love you help me generating the binaries so that I can update them to
>>>>>>>>>>>>>>>>>>>>> OpenDBX website.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Which OpenDBX version are you trying to compile? You
>>>>>>>>>>>>>>>>>>>>> should try 1.4.3.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Can you try configuring this way please ?
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> ./configure --disable-utils --with-backends="pgsql"
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> If it works, I then explain you why that :)
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Making all in po
>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-argmap.o -MD -MP -MF
>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-argmap.Tpo -c -o odbx_sql-argmap.o `test -f 'argmap.cpp' ||
>>>>>>>>>>>>>>>>>>>>>> echo './'`argmap.cpp
>>>>>>>>>>>>>>>>>>>>>> mv -f .deps/odbx_sql-argmap.Tpo
>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-argmap.Po
>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-commands.o -MD -MP
>>>>>>>>>>>>>>>>>>>>>> -MF .deps/odbx_sql-commands.Tpo -c -o odbx_sql-commands.o `test -f
>>>>>>>>>>>>>>>>>>>>>> 'commands.cpp' || echo './'`commands.cpp
>>>>>>>>>>>>>>>>>>>>>> mv -f .deps/odbx_sql-commands.Tpo
>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-commands.Po
>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-completion.o -MD -MP
>>>>>>>>>>>>>>>>>>>>>> -MF .deps/odbx_sql-completion.Tpo -c -o odbx_sql-completion.o `test -f
>>>>>>>>>>>>>>>>>>>>>> 'completion.cpp' || echo './'`completion.cpp
>>>>>>>>>>>>>>>>>>>>>> mv -f .deps/odbx_sql-completion.Tpo
>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-completion.Po
>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-odbx-sql.o -MD -MP
>>>>>>>>>>>>>>>>>>>>>> -MF .deps/odbx_sql-odbx-sql.Tpo -c -o odbx_sql-odbx-sql.o `test -f
>>>>>>>>>>>>>>>>>>>>>> 'odbx-sql.cpp' || echo './'`odbx-sql.cpp
>>>>>>>>>>>>>>>>>>>>>> odbx-sql.cpp: In function 'int main(int, char**)':
>>>>>>>>>>>>>>>>>>>>>> odbx-sql.cpp:228: error: invalid conversion from
>>>>>>>>>>>>>>>>>>>>>> 'char* (*)(const char*, int)' to 'int (*)(const char*, int)'
>>>>>>>>>>>>>>>>>>>>>> make[3]: *** [odbx_sql-odbx-sql.o] Error 1
>>>>>>>>>>>>>>>>>>>>>> make[2]: *** [all-recursive] Error 1
>>>>>>>>>>>>>>>>>>>>>> make[1]: *** [all-recursive] Error 1
>>>>>>>>>>>>>>>>>>>>>> make: *** [all] Error 2
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Do you know of any pre-built binaries that will work
>>>>>>>>>>>>>>>>>>>>>> on OSX?
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> I don't know, but I would love to have them!!!
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 23:09, Mariano Martinez Peck
>>>>>>>>>>>>>>>>>>>>>> <marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 11:27 PM, John Toohey <
>>>>>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Hey,
>>>>>>>>>>>>>>>>>>>>>>>> Thanks for looking into this for me. I'm just using
>>>>>>>>>>>>>>>>>>>>>>>> Pharo as my app is using the beta of Seaside 3.0. I'm going to do as you
>>>>>>>>>>>>>>>>>>>>>>>> suggested and put some debug statements in PGConnection, and see where that
>>>>>>>>>>>>>>>>>>>>>>>> leads.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Ok, let us know what the problem was if you find it
>>>>>>>>>>>>>>>>>>>>>>> :)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Is it a lot of changes from me to switch to DBX on
>>>>>>>>>>>>>>>>>>>>>>>> Pharo?
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> No. Your application shouldn't have any changes. You
>>>>>>>>>>>>>>>>>>>>>>> application will use just Glorp. But in this case Glorp won't use the native
>>>>>>>>>>>>>>>>>>>>>>> PostgreSQL driver, but SqueakDBX with PostgreSQL.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> I assume there are no changes in my Glorp code, but
>>>>>>>>>>>>>>>>>>>>>>>> what else do I need to do.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> The only thing you must do is:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> - Install the PostgreSQL client library (if you don't
>>>>>>>>>>>>>>>>>>>>>>> have it already installed).
>>>>>>>>>>>>>>>>>>>>>>> - Compile or Install (if you are in Linux you can use
>>>>>>>>>>>>>>>>>>>>>>> the .rpm or .deb) OpenDBX with PostgreSQL,
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> You can read how to do it here:
>>>>>>>>>>>>>>>>>>>>>>> http://wiki.squeak.org/squeak/6129
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> You must do it only once. Once this is done,
>>>>>>>>>>>>>>>>>>>>>>> everything is easy and you can take advantage of all the SqueakDBX features
>>>>>>>>>>>>>>>>>>>>>>> (http://wiki.squeak.org/squeak/6106). OpenDBX works
>>>>>>>>>>>>>>>>>>>>>>> perfect with PostgreSQL in Linux, Mac and Windows. We have also have
>>>>>>>>>>>>>>>>>>>>>>> GlorpDBX working with SqueakDBX and PostgreSQL and it is very easy to
>>>>>>>>>>>>>>>>>>>>>>> install:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> http://wiki.squeak.org/squeak/6130    (where it says
>>>>>>>>>>>>>>>>>>>>>>> GlorpDBX).
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> The only limitation we have right now is that we
>>>>>>>>>>>>>>>>>>>>>>> don't support large objects (blob, clob, etc) yet.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> If you try it and have any problem, please, let us
>>>>>>>>>>>>>>>>>>>>>>> know!!!
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> I develop on OSX and deploy to Linux for production.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> No problem.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Mariano
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 21:03, Mariano Martinez Peck
>>>>>>>>>>>>>>>>>>>>>>>> <marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>> SqueakDBX mailing list
>>>>>>>>>>>>>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> SqueakDBX mailing list
>>>>>>>>>>>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>>>>>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> SqueakDBX mailing list
>>>>>>>>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> -JT
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> -JT
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> -JT
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> -JT
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> SqueakDBX mailing list
>>> SqueakDBX at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>
>>>
>>
>>
>> --
>> -JT
>>
>>
>>
>> _______________________________________________
>> SqueakDBX mailing list
>> SqueakDBX at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>
>>
>
> _______________________________________________
> SqueakDBX mailing list
> SqueakDBX at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>
>


-- 
-JT
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeakdbx/attachments/20091004/48f459b0/attachment-0001.htm


More information about the SqueakDBX mailing list