Skip to content

Commit 9cd4999

Browse files
committed
Merge branch 'dev'
2 parents cf0cd23 + 508330a commit 9cd4999

File tree

13 files changed

+52
-19
lines changed

13 files changed

+52
-19
lines changed

Diff for: bin/startGemServerGem

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
GemServer="$1"
44
Port="$2"
5+
PortName=`echo ${Port} | sed "s/'//g"` #strip ' off in case of a non-integer argument
56

67
set -e # exit on error
78

@@ -52,7 +53,7 @@ logDir=${GEMSTONE_LOGDIR}
5253
if [ "${logDir}x" = "x" ] ; then
5354
logDir=/opt/gemstone/log
5455
fi
55-
logFile="${logDir}/${GemServer}_server-${Port}.log"
56+
logFile="${logDir}/${GemServer}_server-${PortName}.log"
5657

5758
username=$GEMSTONE_USER_NAME
5859
if [ "${GEMSTONE_USER_NAME}x" = "x" ] ; then
@@ -78,11 +79,11 @@ run
7879
| logEntry |
7980
System beginTransaction.
8081
(logEntry := ObjectLogEntry
81-
fatal: '${GemServer}_server_${Port}: topaz exit'
82+
fatal: '${GemServer}_server_${PortName}: topaz exit'
8283
object:
8384
'pid: ', (System gemVersionReport at: 'processId') printString) addToLog.
8485
(GemServerRegistry gemServerNamed: '$GemServer')
85-
ifNotNil: [:gemServer | gemServer crashLog add: (${Port}) asString -> logEntry ].
86+
ifNotNil: [:gemServer | gemServer crashLog add: (${PortName}) asString -> logEntry ].
8687
System commitTransaction.
8788
%
8889

Diff for: bin/stopGemServerGem

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,24 @@
22

33
GemServer="$1"
44
Port="$2"
5+
PortName=`echo ${Port} | sed "s/'//g"` #strip ' off in case of a non-integer argument
56

67
# must match GemServer>>gemPidFileName:
78

89
logDir=${GEMSTONE_LOGDIR}
910
if [ "${logDir}x" = "x" ] ; then
1011
logDir=/opt/gemstone/log
1112
fi
12-
pidfile="${logDir}/${GemServer}_server-${Port}.pid"
13+
pidfile="${logDir}/${GemServer}_server-${PortName}.pid"
1314

1415
if [ -e $pidfile ]; then
1516
pid=`cat $pidfile`
1617
rm $pidfile
1718
echo " Stopping topaz PID $pid running on port $port"
1819
kill $pid
20+
while [[ ( -d /proc/$pid ) && ( -z `grep zombie /proc/$pid/status` ) ]]; do
21+
sleep 1
22+
done
1923
else
2024
echo " No PID file found for gem on port $port, not running?"
2125
fi
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
server specialization
22
executeStartGemCommand: portOrResourceName
33
| commandLine |
4-
commandLine := self startScriptPath , ' ' , self name , ' '
5-
, portOrResourceName asString , ' "' , self exeConfPath , '"'.
4+
commandLine := self startScriptPath , ' ' , self name , ' "'
5+
, portOrResourceName printString , '" "' , self exeConfPath , '"'.
66
self performOnServer: commandLine

Diff for: repository/GsApplicationTools-Server.package/GemServer.class/instance/restartGems.st

-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@ service instance-control
22
restartGems
33
self logControlEvent: 'Restart Gems: ' , self name.
44
self stopGems.
5-
(Delay forSeconds: 3) wait. "give gem a chance to close sockets"
65
self startGems
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
service instance-control
2+
waitForStartGems: timeOutSeconds
3+
| pidList count |
4+
pidList := ''.
5+
count := 0.
6+
self logControlEvent: 'Wait for Gems: ' , self name.
7+
self portOrResourceNameList
8+
do: [ :portOrResourceName |
9+
| pidFilePath file |
10+
pidFilePath := self gemPidFileName: portOrResourceName.
11+
[ GsFile existsOnServer: pidFilePath ]
12+
whileFalse: [
13+
(Delay forSeconds: 1) wait.
14+
count := count + 1.
15+
count > timeOutSeconds
16+
ifTrue: [ ^ false ] ] ].
17+
^ true

Diff for: repository/GsApplicationTools-Server.package/GemServer.class/methodProperties.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"enableRemoteBreakpoints" : "dkh 12/10/2014 17:01",
4040
"enableRemoteBreakpoints:" : "dkh 11/26/2014 19:16",
4141
"exeConfPath" : "dkh 01/01/2015 16:54",
42-
"executeStartGemCommand:" : "dkh 01/06/2015 15:31",
42+
"executeStartGemCommand:" : "dkh 05/27/2015 17:02",
4343
"executeStatusGemCommand:" : "dkh 12/20/2014 21:46",
4444
"executeStopGemCommand:" : "dkh 01/06/2015 15:30",
4545
"gemPidFileName:" : "dkh 01/26/2015 15:07",
@@ -99,7 +99,7 @@
9999
"reentryAllowed" : "dkh 01/09/2015 13:12",
100100
"reentryDisallowed" : "dkh 01/09/2015 13:11",
101101
"register" : "dkh 01/06/2015 13:39",
102-
"restartGems" : "dkh 12/06/2014 13:04",
102+
"restartGems" : "dkh 05/27/2015 16:24",
103103
"saveContinuationFor:titled:inTransactionDo:" : "dkh 12/30/2014 07:25",
104104
"scriptBinDirPath" : "dkh 11/29/2014 09:44",
105105
"scriptLogEvent:object:" : "dkh 01/09/2015 17:18",
@@ -132,4 +132,5 @@
132132
"transactionMutex" : "dkh 12/22/2014 14:48",
133133
"unregister" : "dkh 01/06/2015 13:39",
134134
"validateName:" : "dkh 11/26/2014 18:29",
135+
"waitForStartGems:" : "dkh 05/28/2015 00:47",
135136
"writeGemLogEntryFor:titled:" : "dkh 01/06/2015 16:49" } }

Diff for: repository/GsApplicationTools-Server.package/monticello.meta/version

+1-1
Large diffs are not rendered by default.

Diff for: repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/instance/startGems..st

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,8 @@ startGems: gemServer
66
self
77
notify:
88
'evaluate on server: abort; /home/gemserver/example --start=Test_Server' ]
9-
ifFalse: [ gemServer startGems ]
9+
ifFalse: [
10+
gemServer startGems.
11+
self
12+
waitForGemServer: gemServer
13+
message: 'Gems did not start ' , self gemServerName ]
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
private
22
stopGems: gemServer
33
self staticRemoteServer
4-
ifFalse: [
5-
gemServer stopGems.
6-
(Delay forSeconds: 3) wait ]
4+
ifFalse: [ gemServer stopGems ]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
private
2+
waitForGemServer: gemServer message: message
3+
(gemServer waitForStartGems: 20)
4+
ifFalse: [
5+
Transcript
6+
cr;
7+
show: message.
8+
self assert: false ]

Diff for: repository/GsApplicationTools-Test.package/GemServerRemoteVMTests.class/methodProperties.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"instance" : {
99
"createGemServer" : "dkh 01/09/2015 14:05",
1010
"interactiveRemoteServer" : "dkh 01/09/2015 14:02",
11-
"startGems:" : "dkh 01/09/2015 14:08",
11+
"startGems:" : "dkh 05/28/2015 01:26",
1212
"staticRemoteServer" : "dkh 01/09/2015 14:03",
13-
"stopGems:" : "dkh 01/09/2015 14:08",
14-
"testForceBeginTransaction" : "dkh 01/09/2015 14:08" } }
13+
"stopGems:" : "dkh 05/28/2015 01:05",
14+
"testForceBeginTransaction" : "dkh 01/09/2015 14:08",
15+
"waitForGemServer:message:" : "dkh 05/28/2015 01:25" } }
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
accessing
22
useEventLog: anObject
33

4-
useEventLog := anObject
4+
useEventLog := anObject

Diff for: repository/GsApplicationTools-Test.package/monticello.meta/version

+1-1
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)