World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Dockimbel 7-May-2011 [10335x4] | >> read http://localhost/test.r == "make object! [^/ a: 1^/]" |
From a webapp, it works ok too: %libs/obj.r => REBOL [] to-object: func [a [block!]][context a] %www/testapp/test.r => REBOL [] do %../libs/obj.r probe to-object [a: 1] >> read http://localhost/testapp/test.r == "make object! [^/ a: 1^/]" | |
I have disabled the 'auth keyword from /testapp webapp to do this test, to avoid being redirected to a login page. | |
I have run the tests using -w 1, using -w 0, I get a "to-object has no value" error. | |
onetom 7-May-2011 [10339] | (im not sure im following u, but i guess u r logging for urself mostly) |
Dockimbel 7-May-2011 [10340x2] | Basically, your issue is related to the Cheyenne "debug" mode that restart all workers after each request. In normal mode (persistant workers), it should work fine. |
I am investigating now how Cheyenne's debug mode can causes that issue in such case. | |
onetom 7-May-2011 [10342] | im running with -w 1. is it debug mode too? |
Dockimbel 7-May-2011 [10343x4] | No. |
I can't get the error here using -w 1, only using -w 0. | |
Can you show me the content of %obj.r from : do %../lib/obj.r? | |
New Cheyenne revision: 138 FIX: RSP code binding issue with nested DO calls (thanks to Tamas Herman for reporting it). Please pay attention that this fix is really deep in RSP engine, I have tested it with all my RSP apps, but regressions are not excluded. Be sure to report me any odd changes in your app behaviour after upgrading to r138. | |
GrahamC 7-May-2011 [10347] | Dunno if this is relevant .. but I tend to use 'do* instead of 'do |
Dockimbel 7-May-2011 [10348] | do* == do/global == native 'do There are cases where you want to bind your code to global context, so you will use 'do/global. For all other cases, you should just use 'do (especially now that nested 'do should to be fixed). |
GrahamC 7-May-2011 [10349x3] | my meaning being that 'do did not work as I expected ... |
I should go back and see if this new build fixes the issues I've had | |
OTOH, if it's working .. don't touch it! | |
onetom 7-May-2011 [10352x2] | just for the sake of test, it would be valuable if u could try your 'do* code using 'do |
since we dont have automated tests for this - i guess - at least lets do some manual tests | |
GrahamC 7-May-2011 [10354] | Anyway, thanks for examining this .. I just avoided the issue! |
onetom 7-May-2011 [10355] | i was going around it too, by putting my DOs into on-app-start, but hey, for rapid development, such basics should work too |
GrahamC 7-May-2011 [10356x3] | I was putting my stuff into app-init.r as well but found it did not work |
So, I was defining my odbc sources there but they were being overwritten | |
So, now I load the db from a disk file each time ... | |
onetom 7-May-2011 [10359x2] | :) im loading my db from files too... |
on each request actually | |
GrahamC 7-May-2011 [10361x2] | I have mutiple users using a web app on different ports. Each has their own vhost, and their own pages but to keep things simple, each web app is the same. I include a config file each time a rsp page is loaded with the db definition instead of in the app-init.r where it did not work |
When I included the definitions in the app-init, users would access other users' db! | |
Kaj 7-May-2011 [10363x4] | Data wants to be free |
Switching away from root is impossible when the RSP module is disabled: | |
7-May-2011/20:07:17+2:00 : make object! [ code: 311 type: 'script id: 'invalid-path arg1: 'mod-rsp arg2: none arg3: none near: [if exists? file: service/mod-list/mod-rsp/sessions/ctx-file [try-chown file uid gid]] where: 'set-process-to ] | |
from crash.log | |
Dockimbel 8-May-2011 [10367x2] | Kaj: pushed a fix for that in r139. |
When I included the definitions in the app-init, users would access other users' db! Have you used session variables to store user-specific data? Everything else is unsafe. | |
Kaj 8-May-2011 [10369x5] | Thanks, nice turnaround :-) |
Next problem when trying to switch away from root: | |
8-May-2011/17:30:23+2:00 : make object! [ code: 303 type: 'script id: 'expect-arg arg1: 'zero? arg2: 'number arg3: [number! pair! char! money! time! tuple!] near: [if any [zero? gid not zero? set-gid gid] [log/error ["setgid '" group " failed!"]] if ] where: 'set-process-to ] | |
I've checked that I'm doing everything right according to the latest Cheyenne conventions. I have a fairly standard httpd.cfg with this: | |
globals [ user "www" group "www" | |
Dockimbel 8-May-2011 [10374x5] | Odd, maybe a regression in the latest revisions...I will test that on my local linux box in a few minutes. |
Kaj: can you try with user "www" only? | |
(without the 'group line) | |
Also, could you run Cheyenne in verbose mode (-vvvv) and check the boot logs for any error message? | |
The only cause of the error you've reported above, is that something unexpected happened when trying to access and parse %/etc/passwd and %/etc/group. Anything special with these files on your system (compared to e.g., Ubuntu)? | |
Kaj 8-May-2011 [10379x4] | Without group the error is still exactly the same |
This is a custom Linux, so no comparison to Ubuntu :-) | |
One difference is that the root user and group are called "system", but I didn't find a problem with that in my Cheyenne patch a year ago | |
It works if I only use group, although it's hard to check that the group has actually changed | |
Dockimbel 8-May-2011 [10383x2] | Could you extract the mod-userdir/get-id function and try to run it from a REBOL console using: col: #":" get-id "www" |
Hmm, wait, I think the problem is related to the 'set-gid function. | |
older newer | first last |