Hi,
Is anyone already running Pharo5 with mongoDB already? loading my configurationOf in a new pharo5 image results in a problem with mongDB. loading the same in Pharo4 works fine. I reduced the problem to the following steps for reproduction: 1) start Pharo5 and install VoyageMongo from the ProjectCatalog 2) tools-> mongo Browser -> I see that I have connection to my database -ok 3) (VOMongoRepository host: 'localhost' database: self databaseName) enableSingleton. 4) load ONLY my model classes which includes e.g. RKASystemMessage - load nothing else 5) Then I do RKASystemMessage selectAll (there is ONE system message in the mongo database) ==> this results in a non-responding image. 6) when debugging into the selectAll, I see, that VoyageMongo tries to add a collection (systemMessage), which is already there. in VOMongoRepositoryResolver>>collectionAt: aClass inDatabase: db the collections attribute is empty -> this seems to be the problem beause then it tries to do db addCollection: collectionName which leads to a "collection already exists" mongo reply If you have a mongo database running, you should be able to reproduce the problem. Regards Sabine |
problem is not in Pharo 5 but in latest version of MongoTalk (who is loaded with Pharo 5 and apparently not with Pharo 4).
I already submitted a fix for it, but you need to load latest version (still no configuration). Esteban > On 25 May 2016, at 12:18, Sabine Manaa <[hidden email]> wrote: > > Hi, > > Is anyone already running Pharo5 with mongoDB already? > > loading my configurationOf in a new pharo5 image results in a problem with > mongDB. > loading the same in Pharo4 works fine. > > I reduced the problem to the following steps for reproduction: > 1) start Pharo5 and install VoyageMongo from the ProjectCatalog > 2) tools-> mongo Browser -> I see that I have connection to my database -ok > 3) (VOMongoRepository host: 'localhost' database: self databaseName) > enableSingleton. > 4) load ONLY my model classes which includes e.g. RKASystemMessage - load > nothing else > 5) Then I do RKASystemMessage selectAll (there is ONE system message in the > mongo database) ==> this results in a non-responding image. > 6) when debugging into the selectAll, I see, that VoyageMongo tries to add a > collection (systemMessage), which is already there. > > in VOMongoRepositoryResolver>>collectionAt: aClass inDatabase: db > the collections attribute is empty -> this seems to be the problem > beause then it tries to do db addCollection: collectionName > which leads to a "collection already exists" mongo reply > > If you have a mongo database running, you should be able to reproduce the > problem. > > Regards > Sabine > > > > > -- > View this message in context: http://forum.world.st/Problem-with-Mongo-on-Pharo5-collection-already-exists-tp4897315.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > |
Hi Esteban, can you please have a look again, I think you forgot to remove the signal here (remove signal in the ifTrue case then it works): addCollection: aString capped: aCapped size: aSize max: aMax | command | command := SmallDictionary new. command at: 'create' put: aString. aCapped ifTrue: [ command at: 'capped' put: true. aSize ifNotNil: [command at: 'size' put: aSize]. aMax ifNotNil: [command at: 'max' put: aMax]]. [ self command: command ] on: MongoCommandError do: [ :error | "Tolerate error 48: collection already exists" error isCollectionAlreadyExists ==>> ifTrue: [ (MongoCollectionAlreadyExists new collectionName: aString) "signal" ] <<== ifFalse: [ error signal ] ]. ^MongoCollection database: self name: aString 2016-05-25 12:59 GMT+02:00 Esteban Lorenzano <[hidden email]>: problem is not in Pharo 5 but in latest version of MongoTalk (who is loaded with Pharo 5 and apparently not with Pharo 4). |
No I don’t… in part because is not me who make that code, but also because it is expected: after, you have: getCollection: aString ^ [ self addCollection: aString capped: false size: nil max: nil ] on: MongoCollectionAlreadyExists do: [ :err | MongoCollection database: self name: aString ] so the idea is to refine the error to separate MongoCollectionAlreadyExists so it can later be catch and handled properly. cheers, Esteban
|
> On 25 May 2016, at 15:42, Esteban Lorenzano <[hidden email]> wrote: > > Hi, > No I don’t… in part because is not me who make that code, but also because it is expected: after, you have: > > getCollection: aString > ^ [ self addCollection: aString capped: false size: nil max: nil ] > on: MongoCollectionAlreadyExists > do: [ :err | > MongoCollection database: self name: aString ] > > so the idea is to refine the error to separate MongoCollectionAlreadyExists so it can later be catch and handled properly. when adding capped collection support it seemed like a good idea to fail if a collection already exists that might not be capped, but given the follow up issues I wonder if I/we should restore the original behavior that just ignored all errors? holger |
I have a non-responding image with the original code (with the signal)
2016-05-25 15:14 GMT+02:00 Holger Freyther [via Smalltalk] <[hidden email]>:
|
note that it only occurs (hanging image) if you do "VORepository current reset" before. Or have a new Image. 2016-05-25 15:38 GMT+02:00 Sabine Manaa <[hidden email]>:
|
hi Sabine,
please update to latest packages of Voyage… there was a de-sync problem with the API change in MongoTalk, that *should* fix your issue. cheers, Esteban
|
Hi Esteban, great, now it works. Thank you! In the comments, I see "merged with github". I am curious about using github in future, too. Regards Sabine 2016-05-25 21:01 GMT+02:00 EstebanLM [via Smalltalk] <[hidden email]>: hi Sabine, |
Hi, But anyway we are keeping the sthub as mirror… it just got de-sync. And the only reason why I needed the merge, and not a simple copy is because metadataless format got activated and I lost the history, so I rather merge to recover history in some way… :) cheers! Esteban
|
Hi Esteban, do you know a documentation/entry point about moving to github? Is it in experimental state or recommended for all Pharo users? How/where to start? Regards Sabine 2016-05-25 21:54 GMT+02:00 EstebanLM [via Smalltalk] <[hidden email]>:
|
Le 25/5/16 à 21:57, Sabine Manaa a
écrit :
To manage on github there are some blog around. Now what we want to offer is something else: We want to have one solution where you can publish using git (but that people can also use fossil or mercurial if they provide the right commands) from within Pharo. experimental for the integrated pharo version we want to offer a solution for everybody with minimum pain.
|
Hi Steph,
thank you for your explanation. I was reading a little bit this morning about pharo and github. I am looking forward to the solution you will provide in future and use sthub till then. Regards Sabine |
Hi,
> To manage on github there are some blog around I wrote a guide for moving from SmalltalkHub to Github http://peteruhnak.com/blog/2016/03/02/moving-project-from-smalltalkhub-to-github/ And Uko wrote about versioning http://blog.yuriy.tymch.uk/2015/07/pharo-and-github-versioning-revision-2.html now I am writing a bit more practical guide on how to use Git from Pharo… hopefully it will be done during weekend, I'm busy with other stuff atm. Peter |
Hi Peter, thanks. But I will wait for next integration level. I would like to try it but I have to organize my time strictly, so I have no time to play around so much ;-( Regards Sabine 2016-05-26 11:33 GMT+02:00 Peter Uhnák <[hidden email]>:
|
Free forum by Nabble | Edit this page |