[Glass] Early access update: PR #13

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Oct 28 10:51:36 PDT 2015


Okay, it looks like you've got an invalid/incomplete 
BaselineOfRouteEvent class and the problem is probably being triggered 
because you've got a project entry for the RouteEvent project ...

In your original project list listing, I didn't see a RouteEvent 
project, so you must have doing some work since sending that email ... 
and whatever you did wasn't complete and or incorrect...

so in a tODE shell logged into the `seaside` stone  start by restoring 
to the pre-update status:

   bu restore preUpdate.dbf.gz

and try bringing up a project list (I have suspect that it will fail, 
but at least you can get an interactive debugger on it):

   project list

I'm not interested in the stack - but more interested if you don't get a 
stack:) If you do get a project list to come up I want to see a 
CMD-SHIFT-P of the project list (color not necessary this time)

Anyway, I do want to see the following method source:

   browse method --spec BaselineRouteEvent>>baseline:

If the method doesn't exist that would explain it ... if the method does 
and I would like to see the project entry ... and I don't have a command 
that you can run to get it (I will add a flag to the `project entry` 
command to allow one to edit a project entry without having to open a 
project list) ... so if you could do the following (one at a time ):

ls /sys/local/server/projects

ls /sys/stone/projects

and then do a `edit` on the node named RouteEvent in either of those two 
directories and give me the contents ... if there is no RouteEvent ... 
we'll need to do something else ...

Dale

On 10/28/2015 10:31 AM, Jon Paynter wrote:
> The actual code I wrote isnt very much so if I lost it all, its 
> annoying but not a deal breaker.  so I went and ran 'updateTode 
> seaside' from the server command line.  But that failed with an error
>
> gemstone at ubuntu:~/GsDevKit_home$ todeUpdate seaside
> =================
>    GsDevKit script: todeUpdate seaside
>               path: /home/gemstone/GsDevKit_home/bin/todeUpdate
> =================
> =================
>    GsDevKit script: startStone -b seaside
>               path: /home/gemstone/GsDevKit_home/bin/startStone
> =================
>  _____________________________________________________________________________
> |             GemStone/S64 Object-Oriented Data Management 
> System             |
> |                   Copyright (C) GemTalk Systems 
> 1986-2015                   |
> |                            All rights 
> reserved.                             |
> +-----------------------------------------------------------------------------+
> |    PROGRAM: WAITSTONE, GemStone Remote Process 
> Utility                      |
> |    VERSION: 3.2.8, Fri Aug 21 12:12:58 
> 2015                                 |
> |      BUILD: gss64_3_2_x_branch-37241 |
> |  BUILT FOR: x86-64 
> (Linux)                                                  |
> |       MODE: 64 bit |
> | RUNNING ON: 2-CPU ubuntu x86_64 (Linux 3.2.0-23-generic #36-Ubuntu 
> SMP Tue  |
> | Apr 10 20:39:51 UTC 2012) 
> 3529MB                                            |
> | PROCESS ID: 4044      DATE: 10/28/2015 10:16:51 
> PDT                         |
> |   USER IDS: REAL=gemstone (1001) EFFECTIVE=gemstone (1001) 
> LOGIN=gemstone (1001)
> +-----------------------------------------------------------------------------+
> |   GEMSTONE_NRS_ALL = 
> #dir:$GEMSTONE_LOGDIR#log:%N%P.log                     |
> |_____________________________________________________________________________|
> Network service !#server!seaside is ready.
> stone seaside already running, to restart use -r option
> Update tODE on stone: seaside
> =================
>    GsDevKit script: todeIt seaside script --script=updateServerTode
>               path: /home/gemstone/GsDevKit_home/bin/todeIt
> =================
> performing tode command: __script --script=updateServerTode__
>
> tode > script --script=updateServerTode[Info]: libssl-3.2.8-32.so 
> <http://libssl-3.2.8-32.so>: loaded
> [10/28/2015 10:16:52.816 PDT]
>   gci login: currSession 1  rpc gem processId 4066
>
> ---Starting backup to 
> '/home/gemstone/GsDevKit_home/server/stones/seaside/backups//preUpdate.dbf' 
> (10/28/2015 10:16:53)
> ---Finished backup to 28/10/2015 10:17:53 -- preUpdate.dbf.gz
> ========>Server Stack:
>
> EXCEPTION: UserDefinedError: No #baseline pragma found
> 1. UserDefinedError(AbstractException)>>_signalWith: @5 line 25
> 2. UserDefinedError(AbstractException)>>signal @2 line 47
> 3. MetacelloBaselineConstructor(Object)>>error: @6 line 7
> 4. MetacelloBaselineConstructor>>extractBaselinePragmaFor: @6 line 5
> 5. MetacelloBaselineConstructor>>calculate:project: @4 line 4
> 6. MetacelloBaselineConstructor>>on:project: @2 line 2
> 7. MetacelloBaselineConstructor class>>on:project: @3 line 3
> 8. BaselineOfRouteEvent(ConfigurationOf)>>project @14 line 8
> 9. 
> MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>projectClassProject 
> @4 line 4
> 10. MetacelloMCBaselineOfProjectSpec>>version @5 line 4
> 11. MetacelloMCBaselineOfProjectSpec>>versionString @3 line 2
> 12. 
> MetacelloMCBaselineOfProjectSpec>>validateVersionString:withDefaultVersionString: 
> @2 line 2
> 13. 
> MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>validateForScriptLoad:withDefaultVersionString:withDefaultRepositoryDecription: 
> @23 line 35
> 14. MetacelloScriptEngine>>setDefaultsAndValidate: @4 line 6
> 15. [] in MetacelloScriptEngine>>lock @4 line 5
> 16. MetacelloScriptEngine(ExecBlock)>>ensure: @2 line 12
> 17. MetacelloProjectRegistration 
> class>>copyRegistryRestoreOnErrorWhile: @8 line 14
> 18. MetacelloScriptEngine>>lock @2 line 4
> 19. [] in 
> MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute: @11 line 15
> 20. [] in MetacelloScriptApiExecutor>>executeString:do: @5 line 6
> 21. Array(Collection)>>do: @5 line 10
> 22. MetacelloScriptApiExecutor>>executeString:do: @6 line 4
> 23. String>>execute:against: @2 line 2
> 24. MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute: @6 
> line 9
> 25. Metacello>>execute:args: @8 line 5
> 26. Metacello>>lock @2 line 4
> 27. TDMetacelloTool>>projectLock: @14 line 10
> 28. [] in TDMetacelloTool>>projectRegistrationDefinitionMap @14 line 17
> 29. [] in ExecBlock2(TDMetacelloTool)>>scanProjectDir:forProjects: @15 
> line 16
> 30. [] in TDProxyLeafNode>>composedChildrenDo: @3 line 5
> 31. [] in ExecBlock2(TDComposedDirectoryNode)>>composedChildrenDo: @2 
> line 3
> 32. [] in 
> ExecBlock1(TDPathComposedDirectoryNodeContents)>>composedChildrenDo: 
> @5 line 5
> 33. OrderedCollection(Collection)>>do: @5 line 10
> 34. 
> TDPathComposedProjectEntryNodeContents(TDPathComposedDirectoryNodeContents)>>composedChildrenDo: 
> @5 line 5
> 35. 
> TDComposedProjectEntryNode(TDComposedDirectoryNode)>>composedChildrenDo: 
> @3 line 3
> 36. TDRawGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
> 37. TDFileSystemLeafNode>>composedChildrenDo: @7 line 3
> 38. TDProxyLeafNode>>composedChildrenDo: @3 line 3
> 39. TDObjectGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
> 40. TDMetacelloTool>>scanProjectDir:forProjects: @2 line 3
> 41. TDMetacelloTool>>scanForProjects: @5 line 3
> 42. TDMetacelloTool>>projectRegistrationDefinitionMap @9 line 8
> 43. TDMetacelloTool>>projectRegistrationFor: @2 line 2
> 44. TDMetacelloTool>>resolveProjectRegistrationReference: @18 line 15
> 45. TDMetacelloTool>>projectload @5 line 40
> 46. TDMetacelloTool class(TDAbstractDevTool 
> class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
> 47. [] in TDMetacelloTool class>>project @2 line 5
> 48. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
> 49. TDTopezServer>>evaluateCommand:objIn: @18 line 22
> 50. TDTopezServer>>evaluateSTONCommand: @9 line 6
> 51. Executed Code
> 52. GsNMethod class>>_gsReturnToC @1 line 1
>
> ========>Client Stack:
> Error: GemStone Server error: a UserDefinedError occurred (error 
> 2318), reason:halt, No #baseline pragma found
> TodeSession>>logStackRequested:
> TodeSession(GciSession)>>getNbResult
> TodeSession(GciSession)>>getNbResultAsString
> TodeSession(GciSession)>>executeStringExpectingStringNB:envId: in 
> Block: [ ...
> BlockClosure>>ensure:
> Cursor>>showWhile:
> TodeSession(GciSession)>>executeStringExpectingStringNB:envId:
> TDTopezGemStoneClient>>evaluateCommand:batchMode: in Block: [ ...
> BlockClosure>>ensure:
> TDTopezGemStoneClient>>evaluateCommand:batchMode:
> TDShell>>evaluateCommand:
> TDShell>>evaluate: in Block: [ :command | result := self 
> evaluateCommand: comma...etc...
> TDCommandLine class>>line:forEachCommand: in Block: [ :isolated | ...
> OrderedCollection>>do:
> TDCommandLine class>>line:forEachCommand:
> TDCommandLine class>>fromStream:selectLine:forEachCommand: in Block: [ 
> :cmdLine | ...
> OrderedCollection>>do:
> TDCommandLine class>>fromStream:selectLine:forEachCommand:
> TDShell>>evaluate: in Block: evaluate: aString...
> BlockClosure>>on:do:
> TDShell>>evaluate:
> TDShell>>executeScript: in Block: [ ^ self evaluate: commands ]
> Dictionary>>at:ifPresent:ifAbsent:
> TDShell>>executeScript: in Block: [ ...
> Dictionary>>at:ifPresent:ifAbsent: in Block: [ :v | ^ oneArgBlock 
> value: v ]
> BlockClosure>>cull:
> Dictionary>>at:ifPresent:
> Dictionary>>at:ifPresent:ifAbsent:
> TDShell>>executeScript: in Block: [ ...
> Dictionary>>at:ifPresent:ifAbsent:
> gemstone at ubuntu:~/GsDevKit_home$
>
>
>
> Dale - I realize your busy preparing for a conference, so no urgency 
> on this.   Ideally somebody else can point out what I did wrong and we 
> can fix it.
>
>
>
>
> On Mon, Oct 26, 2015 at 2:06 PM, Dale Henrichs 
> <dale.henrichs at gemtalksystems.com 
> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>
>     perfect .. so when you see a project highlighted in red and the 
>     pattern `sha ^ sha[branch-name]` in the second field, that means
>     that you have "version skew" between the SHA of the git commit
>     that you have loaded in the image and the SHA of the git commit
>     that is on disk ...
>
>     This happens when you load tODE into your image and then checkout
>     a different commit in your git repository:
>       explicit checkout or a checkout by another stone sharing repo
>       pull request from a remote
>       commit to the git repo from a different stone sharing repo
>
>     In this case when you run an updateGsDevKit with the `-t` option,
>     the shared tODE repsository ($GS_HOME/shared/repos/tode) is
>     updated via a `git pull` ... In the mail when I suggest using the
>     `-t` option I probably mentioned doing a `todeUpdate <stone-name>`
>     which would cause you stone to have the latest version of tODE
>     loaded using `project load Tode`. When you load tODE, the project
>     list is updated with the latest SHA.
>
>     With Tode red (and not dirty no leading `*`) it is safe to go
>     ahead and to a `project load Tode` ... and when you do that, it is
>     likely that the new `project new` command will also be loaded.
>
>     I don't update stones automatically via, because there is no way
>     to know what you are using a stone for ... but since you know what
>     you are doing, you can use the todeUpdate script on all of your
>     stones after you've done an `updateGsDevKit -t` ... or you can
>     wait until you bring up a stone and notice that projects are red
>     and do the load then ...
>
>     If the project (Tode in this case) has been modified and is read,
>     you might be interested in thinking about things before loading
>     because `project load Tode` does not load over dirty packages and
>     you run the risk of not having code loaded that should have been ....
>
>     You can use the `revert` menu item to load over the modified
>     packages (a `project revert` is coming) and then do a `project
>     load Tode`.
>
>     You might want to look at the code that is coming in before making
>     a decision in which case you use the `skew diff` menu item to see
>     the differences between the two commits (SHAs) ... the diff will
>     be a "file diff" since the differences might only be in a
>     documentation file ...
>
>     If you decide that you want to merge you current changes into the
>     new version, you can use the `skew save` menu item that will walk
>     through the steps to safely merge your changes into the incoming
>     version and create a new version .... I plan to add an additional
>     option called `skew clone` which will copy the git repo into a
>     directory associated only with the stone
>     ($GS_HOME/server/stones/<stone-name>/git/<project-name>) and
>     checkout the SHA that you have loaded ... then you can do the
>     merge yourself or not as you please without being affected by
>     updates to the shared git repositories ....
>
>     Dale
>
>
>     On 10/26/2015 01:19 PM, Jon Paynter wrote:
>>     alt+shift+P (tode client is running under windows) gives me this:
>>
>>     *aTDMetacelloProjectBrowser*
>>     --------------------
>>     |FileTree|            263ef78 [gemstone2.4]
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/filetree/repository
>>     |GLASS1|              208b331 [master]
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/glass/repository
>>     Gofer                 1.0.5.4 [release]
>>     http://seaside.gemtalksystems.com/ss/metacello
>>     |Grease|              b674ad0 [master]
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/Grease/repository
>>     |Metacello|           22cca92 [master]
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/metacello-work/repository
>>     |RB|                  d6639e0 [dev]
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/rb/repository
>>     |Ston|                25aace1 [gemstone]
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/ston/repository
>>     |Tode| b8c9e14 ^ 166f67d [master]
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository
>>     *GsDevKit_home         ae34dcf [master]            $GS_HOME*
>>     _GsApplicationTools
>>     github://GsDevKit/gsApplicationTools:master/repository
>>     |PharoCompatibility|
>>     filetree:///home/gemstone/GsDevKit_home/shared/repos/PharoCompatibility/repository
>>     Seaside3 github://GsDevKit/Seaside31:3.1.?/repository
>>     SIXX github://glassdb/SIXX:master/repository
>>     |XMLSupport| 1.2.2.1
>>     http://seaside.gemtalksystems.com/ss/MetacelloRepository
>>     ZincHTTPComponents github://GsDevKit/zinc:2.4.3.?/repository
>>     _
>>     ... with formatting & colors updated to match what is displayed
>>     in the tode window.
>>
>>     On Mon, Oct 26, 2015 at 1:04 PM, Dale Henrichs
>>     <dale.henrichs at gemtalksystems.com
>>     <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>>
>>
>>
>>         On 10/26/2015 11:48 AM, Jon Paynter wrote:
>>>         Great to hear there is a special command for this.
>>>
>>>         I tried to use the cmd from tode client and im getting an error:
>>>         tode 1 > project new --class RouteEvents
>>>         Topez ERROR: a TodeCommandError occurred (error 121000),
>>>         Unknown sub command 'new' for command 'project'
>>>
>>>         Im running the todeClient on my local PC (windows7) and
>>>         gemstone on a VM (ubuntu 12).  both copies of GsDevKit_home
>>>         are on the same commit:
>>>         $ git log -n1
>>>         commit ae34dcffa14e96cb03a60f41833ce20188ad141a
>>>         Merge: 39af1cf 989ae1d
>>>         Author: Dale Henrichs <dale.henrichs at gemtalksystems.com
>>>         <mailto:dale.henrichs at gemtalksystems.com>>
>>>         Date:   Sat Oct 24 19:00:54 2015 -0700
>>>
>>>             Merge pull request #13 from GsDevKit/dev
>>>
>>>             Early Access - new project support
>>>
>>>         I ran "updateGsDevKit -g -t -i" on both client and server.
>>>         Server update completed with no errors.
>>>         The client update gave an error:
>>>         ...finished downloadSmalltalkClient
>>>         create gsDevKitCommandLine.image image using
>>>         /d/gitvob/GsDevKit_home/sys/default
>>>         /pharo/windows/gsDevKitCommandLineLoad.st
>>>         cat: /d/gitvob/GsDevKit_home/shared/pharo/stderr: No such
>>>         file or directory
>>>
>>>         so I created the missing file and re-ran
>>>             touch /d/gitvob/GsDevKit_home/shared/pharo/stderr
>>>             updateGsDevKit -g -t -i
>>>         and it completed without errors.
>>>
>>>         Lastly the |Tode| entry in the project list shows up in red
>>>         -- I take it to mean there is some problem with the Tode
>>>         project but I dont know enough to tell what.
>>>
>>>         Let me know if you need any more info.
>>>
>>
>>         Most likely you do not have the latest version of tODE loaded
>>         in your stone ... the red is likely indicative, but please
>>         provide with me with a ALT/CMD-SHIFT-P from the project list
>>         window, so I can verify what is wrong - and explain what the
>>         red means (if it is what I think it is) ...
>>
>>         Dale
>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20151028/eff33045/attachment-0001.html>


More information about the Glass mailing list