[Glass] Early access update: PR #13

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Nov 4 14:25:39 PST 2015



On 11/04/2015 01:49 PM, Jon Paynter wrote:
>
> On Wed, Nov 4, 2015 at 12:53 PM, Dale Henrichs 
> <dale.henrichs at gemtalksystems.com 
> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>
>
>     Pull when I post ... I do my development on separate branches for
>     both GsDevKit_home and tODE and I send out the email within an
>     hour or merging the changes for _home and tode into their
>     respective master branches ... so nothing (that you should use) is
>     available unless you see a post ...
>
> Willdo.  hopefully I havent made a hash of things by trying to pull daily.
YOu can't over-pull, unless you are pulling from the dev branches:) I 
often break the universe on the dev branches, so stick to the master 
branches and you'll be fine ...

Are you using $GS_HOme/bin/updateGsDevKit to do your "pulls"?
>
>>      `mc list routeevent` will bring up a browser on the packages in
>>     the image whose name matches the given pattern and there are
>>     'delete' and 'unload' menu items available (that perform the `mc`
>>     command for you) ...
>
> I removed the 2 packages BaselineOfRouteEvent and RouteEvent-Core 
> using 'unload' from the tode shell
>
>
>     This looks like the " a STONReaderError occurred (error 2710),
>     Cannot resolve class named #'TDObjectGatewayLeafNode" error that I
>     mentioned in the EA pull request #15[1] and I would like you to
>     try running the following bash shell command:
>
>       $GS_HOME/bin/patches/patchIssue15 <stone-name>
>
>
> That completed without (visible) errors, but I did notice this while 
> it was running
>
> Loaded -> Tode-GemStone-Server-Base-dkh.1 --- 
> filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository 
> [e2fccee:master] --- cache
> *Warning: You are about to load new versions of the following packages 
> that have unsaved changes in the image.  If you continue, you will 
> lose these changes.
>
>   Tode-GemStone-Server-Core
> *
> Loaded -> Tode-GemStone-Server-Core-dkh.191 --- 
> filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository 
> [e2fccee:master] --- cache
>
> Since I did not intentionally make changes to that package, I assume 
> its ok to overwrite the changes.
This message can pop up at times, when a method has been moved from one 
package to another ... it's actually a good thing to get everything 
loaded during an update, since the system depends upon all of the 
packages working together ..
>
> After restarting my tode client, project list works again.
>
> But when I re-run  "project new --class RouteEvent"  I get an error
>  Could not create directory: errno=17,EEXIST, The file already exists 
> : $GS_HOME/shared/repos/RouteEvent/repository
> 1. UserDefinedError(AbstractException)>>_signalWith: @5 line 25
> 2. UserDefinedError(AbstractException)>>signal @2 line 47
> 3. ServerFileDirectory(Object)>>error: @6 line 7
> 4. ServerFileDirectory(FileDirectory)>>createDirectory: @9 line 10
> 5. 
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:requiredProjects:dependencies:repositories:superclassName:applicationClassCreationBlock: 
> @7 line 5
> 6. 
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:superclassName:applicationClassCreationBlock: 
> @2 line 3
> 7. 
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock: 
> @2 line 3
> 8. TDMetacelloTool>>projectnew @10 line 42
> 9. TDMetacelloTool class(TDAbstractDevTool 
> class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
> 10. [] in TDMetacelloTool class>>project @2 line 5
> 11. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
> 12. TDTopezServer>>evaluateCommand:objIn: @18 line 22
> 13. TDTopezServer>>evaluateSTONCommand: @9 line 6
> 14. Executed Code
> 15. GsNMethod class>>_gsReturnToC @1 line 1
>
> so I remove the folder
> rm -Rf GsDevKit_home/shared/repos/RouteEvent
>
> Then re-run the project new cmd
> and now the same walkback re-occurrs:
ah this is good to know ... I think I should be able to bullet proof 
things a bit more in `project new` .... when a failure occurs I should 
clean up things so that something like the following doesn't happen ...

Until I update, you'll need to manually remove the git directory and the 
unload the packages in the image upon an error .. I think I can handle 
this much better
> a UserDefinedError occurred (error 2318), reason:halt, 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. BaselineOfRouteEvent class(ConfigurationOf class)>>project @3 line 3
> 10. MetacelloToolBox>>baselineNamed: @14 line 18
> 11. MetacelloToolBox class>>baselineNamed: @3 line 3
> 12. 
> TDMetacelloTool>>createBaselineOf:requiredProjects:dependencies:repositories:withPackageNamed: 
> @2 line 3
> 13. 
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:requiredProjects:dependencies:repositories:superclassName:applicationClassCreationBlock: 
> @36 line 24
> 14. 
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:superclassName:applicationClassCreationBlock: 
> @2 line 3
> 15. 
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock: 
> @2 line 3
> 16. TDMetacelloTool>>projectnew @10 line 42
> 17. TDMetacelloTool class(TDAbstractDevTool 
> class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
> 18. [] in TDMetacelloTool class>>project @2 line 5
> 19. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
> 20. TDTopezServer>>evaluateCommand:objIn: @18 line 22
> 21. TDTopezServer>>evaluateSTONCommand: @9 line 6
> 22. Executed Code
> 23. GsNMethod class>>_gsReturnToC @1 line 1
>
> A little poking around in the code for each stack frame leaves me 
> scratching my head.
> In the method 
> TDMetacelloTool>>createBaselineOf:requiredProjects:dependencies:repositories:withPackageNamed: 
>
>
> I see this:
>   | toolBox |
>   (toolBox := MetacelloToolBox baselineNamed: projectName)
>     createBaselineOfMethod: 'baseline:' inCategory: 'baseline';
>     addBaselineOfSection: #'common'
> .....<snip>....
>
> Where "MetacelloToolBox baselineNamed: projectName"  is failing to 
> because the baseline is missing, but it looks like the very next thing 
> it does is to create the baseline method that is missing.
No ... if you look at the code in frame 10, you'll see that the if the 
BaselineOf class doesn't exist, that a new one is created and an emtpy 
baseline: method is created ... the fact that you don't have a baseline: 
method implies that the class existed beforehand and was missing the 
method itself ,,,
>
> So I suspect my stone is missing parts of the PR#13 update

No I don't think this is the problem
>
> Also of note - when I refresh my project list the new project shows 
> up.  but after I click on the project, the project list, anything else 
> I do gives the same walkback message:   "a UserDefinedError occurred 
> (error 2318), reason:halt, No #baseline pragma found"
Yeah you have to get rid of the bogus BaselineOfRouteEvent class ... and 
I have to bullet proof the project list from this situation as well ... 
this is exactly the type of error conditions that I was hopgin to find 
early on ... thanks for sticking with this and providing detailed 
information!
>
> Closing and re-opening the project list also gives the same error
> So I removed the BaselineOfRouteEvent class, and unloaded the 2 
> packages, and the project list works again, but the RouteEvent project 
> is still listed -- I expected it to be gone.  If I right-click on the 
> RouteEvent project and pick project->unregister.  it doesnt appear to 
> do anything.

> So I remove $GS_HOME/shared/repos/RouteEvent and 
> $GS_HOME/sys/local/server/projects/RouteEvent.ston from the server, 
> and the project is finally gone
Yep this is the other artifact created during `project new`
>
> next, I tried creating a new project with a different name:
>     project new --class RouteEvent1
>
> and I get the same walkback as above

I'd liek to see that stack myself ... the one above involved 
BaselineRouteEvent and that was a class that we knew already existed in 
the image ... there must be something different this time around unless 
you already have a class named BaselineRouteEvent1 already created?

Dale
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20151104/5e211999/attachment.html>


More information about the Glass mailing list