topaz processes blocking backup

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

topaz processes blocking backup

GLASS mailing list

I do not know why, but my topaz processes (having only zinc http-work) are still blocking my backup process - and have an increasing backlog value: 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).

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 ...

server := MSKRestCallServer newDefaultServer.
server port: $2 printString asNumber.
server startServer: true httpDebug: false localhost: false.
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

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: topaz processes blocking backup

GLASS mailing list
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

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass