For the benefit of the NG, here's info about a problem I recently logged
with WRC while preparing a new Cache 5 demo kit of VC/m, our version
control product. It's been confirmed as a bug, fixed in 5.1. I'm waiting
to hear if it'll be back-ported to a 5.0.x release.
I hope the info may prove useful to someone.
Regards,
John Murray
George James Software
www.georgejames.com <http://www.georgejames.com>
VC/m - the force of change
---
I created six new copies of mgr/samples/CACHE.DAT and the csp/samples
tree. Their namespaces
are:
VCMDEMO-DEV1
VCMDEMO-DEV2
VCMDEMO-PATCHDEV
VCMDEMO-PATCHTEST
VCMDEMO-PROD
VCMDEMO-TEST
Their CSP app dirs are /csp/vcmdemo/samples/dev1, dev2 etc.
My test routine in USER is as follows:
YJMtest ;
k ns
s ns("VCMDEMO-DEV1")="dev1"
s ns("VCMDEMO-DEV2")="dev2"
s ns("VCMDEMO-PATCHDEV")="patchdev"
s ns("VCMDEMO-PATCHTEST")="patchtest"
s ns("VCMDEMO-PROD")="prod"
s ns("VCMDEMO-TEST")="test"
s ns=""
f s ns=$o(ns(ns)) q:ns="" d
. zn ns
. w !!,$zu(5)
. d
. . w !,"LoadPageDir"
. . s
ok=$system.CSP.LoadPageDir("/csp/vcmdemo/samples/"_ns(ns),"-d")
. . i ok w ":OK"
. . e w ": Failed - ",ok
zn "USER"
q
I start a new terminal in USER and run it once. The output is:
USER>d ^YJMtest
VCMDEMO-DEV1
LoadPageDir:OK
VCMDEMO-DEV2
LoadPageDir:OK
VCMDEMO-PATCHDEV
LoadPageDir:OK
VCMDEMO-PATCHTEST
LoadPageDir:OK
VCMDEMO-PROD
LoadPageDir:OK
VCMDEMO-TEST
LoadPageDir:OK
USER>
Now I run it again in the same terminal:
USER>d ^YJMtest
VCMDEMO-DEV1
LoadPageDir:OK
VCMDEMO-DEV2
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PATCHDEV
LoadPageDir:OK
VCMDEMO-PATCHTEST
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PROD
LoadPageDir:OK
VCMDEMO-TEST
LoadPageDir:OK
USER>
Next I start a fresh terminal. There, the first run of YJMtest is OK and
the second run gives the
same errors as in the original terminal.
Third and subsequent runs give the same result.
However, in a fresh terminal, twelve consecutive runs of the following
command produced no
failures:
VCMDEMO-DEV2>w
!,$system.CSP.LoadPageDir("/csp/vcmdemo/samples/dev2","-d")
After that, the first run of YJMtest from user was OK, but the
subsequent runs produced <CLASS
EDITED> errors though not always on the same namespaces.
Then I augmented my YJMtest routine to do an OBJ.CompileAll and a
CSP.LoadRuleDir as well. Now I get
<CLASS EDITED> on the first pass and also <INTERNAL OBJECT ERROR> on the
second:
USER>d ^YJMtest
VCMDEMO-DEV1
CompileAll:OK
LoadRuleDir:OK
LoadPageDir:OK
VCMDEMO-DEV2
CompileAll:OK
LoadRuleDir:OK
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PATCHDEV
CompileAll:OK
LoadRuleDir:OK
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PATCHTEST
CompileAll:OK
LoadRuleDir:OK
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PROD
CompileAll:OK
LoadRuleDir:OK
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-TEST
CompileAll:OK
LoadRuleDir:OK
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
USER>d ^YJMtest
VCMDEMO-DEV1
CompileAll:OK
LoadRuleDir:OK
LoadPageDir:OK
VCMDEMO-DEV2
CompileAll: Failed - 0 C�9<INTERNAL OBJECT
ERROR>LockClassesRecursive+10^%occ
Lock
LoadRuleDir: Failed - 0 8�0<INTERNAL OBJECT
ERROR>LockOneClass+6^%occLock
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PATCHDEV
CompileAll: Failed - 0 C�9<INTERNAL OBJECT
ERROR>LockClassesRecursive+10^%occ
Lock
LoadRuleDir: Failed - 0 8�0<INTERNAL OBJECT
ERROR>LockOneClass+6^%occLock
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PATCHTEST
CompileAll: Failed - 0 C�9<INTERNAL OBJECT
ERROR>LockClassesRecursive+10^%occ
Lock
LoadRuleDir: Failed - 0 8�0<INTERNAL OBJECT
ERROR>LockOneClass+6^%occLock
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-PROD
CompileAll: Failed - 0 C�9<INTERNAL OBJECT
ERROR>LockClassesRecursive+10^%occ
Lock
LoadRuleDir: Failed - 0 8�0<INTERNAL OBJECT
ERROR>LockOneClass+6^%occLock
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
VCMDEMO-TEST
CompileAll: Failed - 0 C�9<INTERNAL OBJECT
ERROR>LockClassesRecursive+10^%occ
Lock
LoadRuleDir: Failed - 0 8�0<INTERNAL OBJECT
ERROR>LockOneClass+6^%occLock
LoadPageDir: Failed - 0 *�"<CLASS EDITED>tag+48^%cspCompile
USER>
--
The augmented YJMtest routine is:
YJMtest ;
k ns
s ns("VCMDEMO-DEV1")="dev1"
s ns("VCMDEMO-DEV2")="dev2"
s ns("VCMDEMO-PATCHDEV")="patchdev"
s ns("VCMDEMO-PATCHTEST")="patchtest"
s ns("VCMDEMO-PROD")="prod"
s ns("VCMDEMO-TEST")="test"
s ns=""
f s ns=$o(ns(ns)) q:ns="" d
. zn ns
. w !!,$zu(5)
. d:1
. . w !,"CompileAll"
. . s ok=$system.OBJ.CompileAll("-d")
. . i ok w ":OK"
. . e w ": Failed - ",ok
. ;
. d:1
. . w !,"LoadRuleDir"
. . s
ok=$system.CSP.LoadRuleDir("/csp/vcmdemo/samples/"_ns(ns),"-d")
. . i ok w ":OK"
. . e w ": Failed - ",ok
. ;
. d:1
. . w !,"LoadPageDir"
. . s
ok=$system.CSP.LoadPageDir("/csp/vcmdemo/samples/"_ns(ns),"-d")
. . i ok w ":OK"
. . e w ": Failed - ",ok
zn "USER"
q