It looks like Zinc has a problem handling PUT requests (at least ZnZincServerAdaptor). If I replace ZnZincServerAdaptor by WAKom, then things work fine. To reproduce: Setting up the Server 1- Download a SmalltalkHub image (https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/) 2- Install mongodb on your computer (for Debian: apt-get install mongodb) 3- Launch the SmalltalkHub image 4- Evaluate: ZnZincServerAdaptor startOn: 8080 5- Visit http://localhost:8080/tools/hub, create an account and a project Setting up the Client 6- In a different image, start monticello 7- add the repository of your new project to Monticello (something like http://localhost:8080/mc/YourUser/YourProject/main), don't forget the username and password 8- copy an existing package of your cache to the new repository You will get an error in the client: a ZnStringEntity(text/plain 512B file is too short) If you install Seaside-Adaptors-Kommanche and use WAKom, things will work just fine. You can configure Seaside to open a server-side error: just setup the WAExceptionFilter to WADebugErrorHandler in http://localhost:8080/config/mc -- Damien Cassou http://damiencassou.seasidehosting.st "Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
Hi Damien, On 21 May 2013, at 10:20, Damien Cassou <damien.cassou@gmail.com> wrote:
It looks like Zinc has a problem handling PUT requests (at least ZnZincServerAdaptor). If I replace ZnZincServerAdaptor by WAKom, then things work fine. To reproduce:
Setting up the Server 1- Download a SmalltalkHub image (https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/) 2- Install mongodb on your computer (for Debian: apt-get install mongodb) 3- Launch the SmalltalkHub image 4- Evaluate: ZnZincServerAdaptor startOn: 8080 5- Visit http://localhost:8080/tools/hub, create an account and a project
Setting up the Client 6- In a different image, start monticello 7- add the repository of your new project to Monticello (something like http://localhost:8080/mc/YourUser/YourProject/main), don't forget the username and password 8- copy an existing package of your cache to the new repository
You will get an error in the client: a ZnStringEntity(text/plain 512B file is too short)
If you install Seaside-Adaptors-Kommanche and use WAKom, things will work just fine.
You can configure Seaside to open a server-side error: just setup the WAExceptionFilter to WADebugErrorHandler in http://localhost:8080/config/mc
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
Thanks for the detailed instructions, now I have StHub & mongo running on my machine ;-) The problem you reported can easily be fixed by loading the latest version of Zinc-Seaaside (the one in the StHub image is very old). Now, it still does not fully work, but I don't understand all the Sh and MA stuff, I am afraid. But if you go up the stack until you find Seaside's aRequestContext and find the request body in it (the data which was PUT), you can do (ZipArchive new readFrom: self asByteArray readStream) members on it, so for me that means the data arrives OK. If you have another problem with the Zinc/Adaptor part, please let me know. HTH, Sven PS:
Thanks sven, I'll try it later today. Nico On May 21, 2013, at 1:01 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
Hi Damien,
On 21 May 2013, at 10:20, Damien Cassou <damien.cassou@gmail.com> wrote:
It looks like Zinc has a problem handling PUT requests (at least ZnZincServerAdaptor). If I replace ZnZincServerAdaptor by WAKom, then things work fine. To reproduce:
Setting up the Server 1- Download a SmalltalkHub image (https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/) 2- Install mongodb on your computer (for Debian: apt-get install mongodb) 3- Launch the SmalltalkHub image 4- Evaluate: ZnZincServerAdaptor startOn: 8080 5- Visit http://localhost:8080/tools/hub, create an account and a project
Setting up the Client 6- In a different image, start monticello 7- add the repository of your new project to Monticello (something like http://localhost:8080/mc/YourUser/YourProject/main), don't forget the username and password 8- copy an existing package of your cache to the new repository
You will get an error in the client: a ZnStringEntity(text/plain 512B file is too short)
If you install Seaside-Adaptors-Kommanche and use WAKom, things will work just fine.
You can configure Seaside to open a server-side error: just setup the WAExceptionFilter to WADebugErrorHandler in http://localhost:8080/config/mc
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
Thanks for the detailed instructions, now I have StHub & mongo running on my machine ;-)
The problem you reported can easily be fixed by loading the latest version of Zinc-Seaaside (the one in the StHub image is very old). Now, it still does not fully work, but I don't understand all the Sh and MA stuff, I am afraid.
But if you go up the stack until you find Seaside's aRequestContext and find the request body in it (the data which was PUT), you can do
(ZipArchive new readFrom: self asByteArray readStream) members
on it, so for me that means the data arrives OK.
If you have another problem with the Zinc/Adaptor part, please let me know.
HTH,
Sven
PS:
-- Nicolas Petton http://www.nicolas-petton.fr
Nicolas Petton wrote
Thanks sven, I'll try it later today.
On May 21, 2013, at 1:01 PM, Sven Van Caekenberghe <
sven@
> wrote:
The problem you reported can easily be fixed by loading the latest version of Zinc-Seaaside (the one in the StHub image is very old). Now, it still does not fully work, but I don't understand all the Sh and MA stuff, I am afraid.
Bump. What's the status? The instructions on Jenkins [1] still say: WAKom startOn: 8080. "you could use Zinc, but there seems to be a bug with PUT requests (ZnZincServerAdaptor startOn: 8080)" However WAKom is not included in the build artifact. [1] https://ci.inria.fr/pharo-contribution/job/SmalltalkHub ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Sean P. DeNigris wrote
WAKom startOn: 8080.
Update: after installing Seaside-Adaptors-Comanche-lr.70, I get an undefined HttpService... If I go back to Zinc, after creating a user, when I try to log in I get "Error: Not enough space for external objects, set a larger size at startup!" ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Sean P. DeNigris wrote
when I try to log in I get "Error: Not enough space for external objects, set a larger size at startup!"
Update2: I bumped my RAM to 4GB with the same error. System details: * Debian 6.0.7 * Parallels 8 * get.pharo.org/vm from today * Last successful image artifact from sthub Jenkins job ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
On Fri, Jun 14, 2013 at 6:01 AM, Sean P. DeNigris <sean@clipperadams.com> wrote:
Update2: I bumped my RAM to 4GB with the same error.
do you use the image built by Jenkins or your own? -- Damien Cassou http://damiencassou.seasidehosting.st "Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
Damien Cassou wrote
do you use the image built by Jenkins or your own?
Jenkins, of course... I let the butler do it because I'm too lazy to build ;) ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Am 14.06.2013 um 05:46 schrieb Sean P. DeNigris <sean@clipperadams.com>:
Sean P. DeNigris wrote
WAKom startOn: 8080.
Update: after installing Seaside-Adaptors-Comanche-lr.70, I get an undefined HttpService...
If I go back to Zinc, after creating a user, when I try to log in I get "Error: Not enough space for external objects, set a larger size at startup!"
I created a bug entry for this https://pharo.fogbugz.com/f/cases/10839 I probably means the usual that some code is not ensuring the destroy of a socket and therefor releasing its resources. I had such a problem last week with an edge case in zinc, too Norbert
Sean, On 14 Jun 2013, at 05:32, "Sean P. DeNigris" <sean@clipperadams.com> wrote:
Nicolas Petton wrote
Thanks sven, I'll try it later today.
On May 21, 2013, at 1:01 PM, Sven Van Caekenberghe <
sven@
> wrote:
The problem you reported can easily be fixed by loading the latest version of Zinc-Seaaside (the one in the StHub image is very old). Now, it still does not fully work, but I don't understand all the Sh and MA stuff, I am afraid.
Bump. What's the status? The instructions on Jenkins [1] still say: WAKom startOn: 8080. "you could use Zinc, but there seems to be a bug with PUT requests (ZnZincServerAdaptor startOn: 8080)"
However WAKom is not included in the build artifact.
I don't maintain the build, but all these problems where fixed some time ago. Zinc is being using in the production StHub site since then ! Sven -- Sven Van Caekenberghe http://stfx.eu Smalltalk is the Red Pill
Sven Van Caekenberghe-2 wrote
The problem you reported can easily be fixed by loading the latest version of Zinc-Seaaside (the one in the StHub image is very old) ... I don't maintain the build, but all these problems where fixed some time ago.
The image I downloaded from Jenkins has loaded baseline 0.9.1 of sthub, which seems to be the latest defined in ConfigurationOfSmalltalkHub from http://smalltalkhub.com/mc/NicolasPetton/SmalltalkHub/main . I checked http://www.squeaksource.com/ZincHTTPComponents, which is the repo mentioned at http://zn.stfx.eu/zn/index.html, and the only packages available for update are Zinc-Character-Encoding-Core-SvenVanCaekenberghe.21, Zinc-HTTP-SvenVanCaekenberghe.371, and Zinc-Resource-Meta-Core-SvenVanCaekenberghe.53. Updating the first two didn't help, and the last one broke the MCWorkingCopyBrowser with MessageNotUnderstood: ZnUrl>>enforceKnownScheme Help!!!! This is too high a bar for user contributions. If I can't figure this out, what is the chance that someone outside our core community can?! ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Sean, Damien, On 17 Jun 2013, at 04:11, Sean P. DeNigris <sean@clipperadams.com> wrote:
Sven Van Caekenberghe-2 wrote
The problem you reported can easily be fixed by loading the latest version of Zinc-Seaaside (the one in the StHub image is very old) ... I don't maintain the build, but all these problems where fixed some time ago.
The image I downloaded from Jenkins has loaded baseline 0.9.1 of sthub, which seems to be the latest defined in ConfigurationOfSmalltalkHub from http://smalltalkhub.com/mc/NicolasPetton/SmalltalkHub/main . I checked http://www.squeaksource.com/ZincHTTPComponents, which is the repo mentioned at http://zn.stfx.eu/zn/index.html, and the only packages available for update are Zinc-Character-Encoding-Core-SvenVanCaekenberghe.21, Zinc-HTTP-SvenVanCaekenberghe.371, and Zinc-Resource-Meta-Core-SvenVanCaekenberghe.53. Updating the first two didn't help, and the last one broke the MCWorkingCopyBrowser with MessageNotUnderstood: ZnUrl>>enforceKnownScheme
Help!!!! This is too high a bar for user contributions. If I can't figure this out, what is the chance that someone outside our core community can?!
I just downloaded https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/57/ This is Pharo 2.0 #20606 ConfigurationOfSmalltalkHub does _not_ specify a dependency on Zinc, nor does it specify any versions ;-) I am assuming the Zinc code is/was updated manually (it is newer than in 2.0, but not totally #bleedingEdge). I ran all Zinc/Zodiac tests and they were green - all 354 of them. When I do ZnZincServerAdaptor startOn: 8080 StHub works as advertised (mongo has to be running first of course): Including me being located at 'Champs-Ãlysées' which was the proof of fixing an encoding problem. When I do ConfigurationOfZincHTTPComponents project bleedingEdge load. All Zinc/Zodiac tests are still green - all 357 of them. And StHub keeps on running (I did not do extensive tests though). StHub is an important project, but I guess their focus is on providing an excellent UX for all of us in production. That is a hell of a job and they are doing it well. If StHub would fail they would receive a _lot_ of complaints. I am proud that Zinc is a part of that and I plan to support them as well as I can. However, I am assuming the UX of others downloading their build/image and helping them like any good open source project should do is secondary to the first goal, and so it should be. So what _is_ the problem ? As far as I can see, it just works ;-) Sven BTW: there is even code in StHub, namely Hub-CamilloBruni.119, that was not merged properly AFAICT. -- Sven Van Caekenberghe Proudly supporting Pharo http://pharo.org http://association.pharo.org http://consortium.pharo.org
Sven Van Caekenberghe-2 wrote
I just downloaded https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/57/
Thanks for investigating! Sven Van Caekenberghe-2 wrote
StHub works as advertised (mongo has to be running first of course): ... So what _is_ the problem ? As far as I can see, it just works ;-)
When I download the same version and evaluate "ZnZincServerAdaptor startOn: 8080", sthub responds at 8080. However, if I join with user sean, email sean@me.com, pwd 123 (please don't tell anyone. I'll have to change all my accounts ;)), when I submit the login form with proper credentials, I get a "loading" message that eventually ends with the "Not enough space" error I described. In the Terminal, I saw the following. Maybe related? KeyNotFound(Exception)>>resignalAs: VOMongoSessionPool>>withDatabase: in Block: [:e | ... ... ShUsersHandler(ShHandler)>>renderJson: ShUsersHandler>>count ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Sean P. DeNigris wrote
when I submit the login form with proper credentials, I get a "loading" message that eventually ends with the "Not enough space" error I described.
Update: The user is in the mongo db: db.shEntity.find() { "#instanceOf" : "ShUser", "#version" : { "floatApprox" : 3438160724 }, "_id" : ObjectId("5f77b0960000000000000000"), "admin" : null, "created" : { "t" : 319000, "i" : 1409359576 }, "email" : "sean@me.com", "fullName" : null, "isNew" : null, "lastModification" : { "t" : 319000, "i" : 1409359576 }, "location" : null, "mcUsername" : null, "password" : "369590257452814774925548805240102185537183137519", "sid" : "cf01e708-f2f8-46cb-afc9-7439258e7507", "timeline" : { "#instanceOf" : "ShTimeline", "events" : null }, "username" : "Sean", "watching" : [ ], "website" : null } A bunch of Mongo test failures/errors: 49 run, 13 passes, 0 skipped, 0 expected failures, 22 failures, 14 errors, 0 unexpected passes Failures: MongoTest>>#testSelectWithLimitAndNumberToSkip MQQueryTest>>#testNor MQQueryTest>>#testAnd MQQueryTest>>#testSelect MongoWholeDatabaseTest>>#testBasics MongoTest>>#testInsertAndQueryWithFields MongoTest>>#testCollections MQQueryTest>>#testNestedQueries BSONTest>>#testDate MongoTest>>#testOccurrencesOf MQQueryTest>>#testAndNot MongoTest>>#testDelete MQQueryTest>>#testOr BSONTest>>#testDateAndTime MongoTest>>#testInsertAndQuery MQQueryTest>>#testWhere MongoTest>>#testSelect MongoTest>>#testCollectionValidation MQQueryTest>>#testNot MQQueryTest>>#testType MQQueryTest>>#testComparison MQQueryTest>>#testSize Errors: MongoTest>>#testAdd MongoTest>>#testAddAll MongoTest>>#testAddArray MongoTest>>#testCursor MongoTest>>#testDatabases MongoTest>>#testDo MongoTest>>#testInjectInto MongoTest>>#testInsertTwoAndQuery MongoTest>>#testIsEmpty MongoTest>>#testOrderBy MongoTest>>#testRemove MongoTest>>#testRemoveAll MongoTest>>#testRemoveBoth MongoTest>>#testRemoveMissingElementSucceeds The errors that I checked all have replies like: a Dictionary('bad cmd'->a Dictionary('$query'->a Dictionary('count'->'testCollection' 'fields'->a Dictionary() 'query'->a Dictionary('key'->'value' ) ) ) 'errmsg'->'no such cmd' 'ok'->0.0 ) I'm going to try reinstalling mongodb. I don't remember if I installed via apt-get install mongodb (I think that's what I did), or the 10gen version recommended in the mongodb install guide ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Sean P. DeNigris wrote
I'm going to try reinstalling mongodb. I don't remember if I installed via apt-get install mongodb (I think that's what I did), or the 10gen version recommended in the mongodb install guide
Yay! After reinstalling mongo per the installation guide [1], and ditching the epiphany web browser in favor of iceweasel, I was able to successfully log in to my local sthub :) Thanks for all the support. I updated the Jenkins job's mongodb installation instructions to refer to [1] Most of the MongoTalk tests are passing now. The only failures are #testDate and #testDateAndTime [1] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/ To install mongodb in debian: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/10gen.list sudo apt-get update sudo apt-get install mongodb-10gen ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-dev-Zinc-problem-with-PUT-requests-tp4688705p469... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
On 18 Jun 2013, at 04:41, "Sean P. DeNigris" <sean@clipperadams.com> wrote:
Yay! After reinstalling mongo per the installation guide [1], and ditching the epiphany web browser in favor of iceweasel, I was able to successfully log in to my local sthub :) Thanks for all the support. I updated the Jenkins job's mongodb installation instructions to refer to [1]
Great ! Thanks for the write up. Applications with an important persistency component are always a tad harder to deploy. Sven -- Sven Van Caekenberghe Proudly supporting Pharo http://pharo.org http://association.pharo.org http://consortium.pharo.org
Hi Sven, This is not merged on purpose, as Camillo's patch needs some review and thinking :) Nico On Jun 17, 2013, at 3:29 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
BTW: there is even code in StHub, namely Hub-CamilloBruni.119, that was not merged properly AFAICT.
-- Nicolas Petton http://www.nicolas-petton.fr
On Fri, Jun 14, 2013 at 5:32 AM, Sean P. DeNigris <sean@clipperadams.com> wrote:
Bump. What's the status? The instructions on Jenkins [1] still say: WAKom startOn: 8080. "you could use Zinc, but there seems to be a bug with PUT requests (ZnZincServerAdaptor startOn: 8080)"
Zinc should work just fine. I've just updated the instructions. -- Damien Cassou http://damiencassou.seasidehosting.st "Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
participants (5)
-
Damien Cassou -
Nicolas Petton -
Norbert Hartl -
Sean P. DeNigris -
Sven Van Caekenberghe