[Glass] topaz processes blocking backup

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Mon Feb 22 15:30:59 PST 2016


On 2/20/16 12:51 AM, Marten Feldtmann via Glass wrote:
>
> I do not know why, but my topaz processes (having only zinc http-work) 
> are still blocking my backup process
>
I'm not quite sure what you mean here ... is there a specific error that 
you are getting?
>
> - and have an increasing backlog value:
>
are you talking about a commit record backlog?
>
> actually these topaz processes are started - but they nevers servered 
> any request, because I had a Jade session open and all requests were 
> redirected to that session (due to debugging).
>
How are requests (HTTP requests?) being redirected to JADE?

If you have a JADE session open (the same applies to tODE and GemTools 
or an interactive topaz), then you MUST periodically perform an abort or 
the interactive session WILL cause a commit record backlog ... Either 
that or you have to arrange to start an infinite delay loop that never 
returns to your client. For example the following executed in a JADE 
workspace should avoid a commit record backlog:

    [true ] whileTrue: [ (Delay forSeconds: 30) wait. abort ]

unless your JADE session is not the only interactive login...


> In the first window you see my code, which starts the https server on 
> a specific port - and the second window shows all stuff around ...
>
I don't see any windows here, so I don't quite understand what you are 
describing ..

The following three lines look completely out of context and I don't 
know what they signify
> server := MSKRestCallServer newDefaultServer.
> server port: $2 printString asNumber.
> server startServer: true httpDebug: false localhost: false.

Now the following looks like a topaz session launching code similar to 
the above and I would expect this code to work properly ... the log file 
would be useful to understand if it is properly starting and running ...
> cat << EOF | nohup $GEMSTONE/bin/topaz -l -T ${3} -u ${1}_${2} 2>&1 >> $GEMSTONE_LOGDIR/${1}_server-${2}.log &
>
> set user DataCurator pass $GEMSTONE_CURATOR_PASS gems $GEMSTONE_NAME
>
> display oops
> iferror where
>
> login
>
> run
>
> "record gems pid in the pid file"
>
> | file |
>
> (GsFile isServerDirectory: '$GEMSTONE_DATADIR') ifFalse: [ ^nil ].
>
> file := GsFile openWriteOnServer: '$GEMSTONE_DATADIR/${1}_server-${2}.pid'.
> file nextPutAll: (System gemVersionReport at: 'processId') printString.
> file cr.
> file close.
>
> (ObjectLogEntry
>    info: '${1}_server-${2}: startup'
>    object: 'pid: ', (System gemVersionReport at: 'processId') printString) addToLog.
> System commitTransaction
>      ifFalse: [
>        System abortTransaction.
>        nil error: 'Could not commit ObjectLog entry' ].
> %
> run
>
> | count server |
>
> GsProcess usingNativeCode not
>    ifTrue: [
>      "Enable remote Breakpoing handling"
>      Breakpoint trappable: true.
>      GemToGemAnnouncement installStaticHandler.
>      System commitTransaction ifFalse: [ nil error: 'Could not commit for GemToGemSignaling' ].
>    ].
>
> System transactionMode: #autoBegin.
> Exception
>    installStaticException:
>      [:ex :cat :num :args |
>        "Run the abort in a lowPriority process, since we must acquire the
>         transactionMutex."
>        [
>          GRGemStonePlatform current transactionMutex
>            critical: [
>              GRGemStonePlatform  current doAbortTransaction ].
>          System enableSignaledAbortError.
>        ] forkAt: Processor lowestPriority.
>      ]
>    category: GemStoneError
>    number: 6009 "#rtErrSignalAbort"
>    subtype: nil.
>
> System enableSignaledAbortError.
>
> "This thread is needed to handle the SigAbort exception, when the primary
> thread is blocked. Assuming default 60 second STN_GEM_ABORT_TIMEOUT, wake
> up at 30 second intervals."
>
> [
>    [ true ] whileTrue: [ (Delay forSeconds: 30) wait ].
>
> ] forkAt: Processor lowestPriority.
>
> GsFile gciLogServer: '$1 Server started on port ', $2 printString.
> server := MSKRestCallServer newDefaultServer.
> server port: $2 printString asNumber.
> server startServer: true httpDebug: false localhost: false.
> %
>
> run
>
> GemToGemAnnouncement uninstallStaticHandler.
> System beginTransaction.
> (ObjectLogEntry
>    fatal: '${1}_server_${2}: topaz exit'
>    object:
>      'pid: ', (System gemVersionReport at: 'processId') printString) addToLog.
> System commitTransaction.
>
> %
>
> EOF
>

You mention a JADE session running an I can only assume that it is the 
JADE session that is causing your "problem", but I'm not exactly sure 
that I know what your problem is ...

Presumably if you stop trying to debug with JADE the system runs correctly?

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


More information about the Glass mailing list