Closed ramauers closed 3 years ago
I'm kinda involved in some other tasks at the moment .... so I need a little more time to look into your proposed change ... it's not good for there to be a possibility of commit conflicts on startup, so that is probably a design flaw that can be fixed a couple of different ways ... how many gemServers are you trying to start when you are seeing transaction conflicts?
I configured three server instances for startup. Attached is a log file, which shows the stack trace before my fix.
The fix ensures, that the desired number of processes are running at the end. After thinking twice: Another way to fix it would be not to retry the failed commits at all. A simple abort should be enough, since the different processes won't commit contradictory transaction modes... Anyway, there are different options...
Br,
Ralph
Am 03.11.2020 um 03:33 schrieb Dale Henrichs:
I'm kinda involved in some other tasks at the moment .... so I need a little more time to look into your proposed change ... it's not good for there to be a possibility of commit conflicts on startup, so that is probably a design flaw that can be fixed a couple of different ways ... how many gemServers are you trying to start when you are seeing transaction conflicts?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/GsDevKit/gsApplicationTools/pull/40#issuecomment-720872972, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO3ETXAGWDO2GI6HXFTUGG3SN5TWXANCNFSM4TGSMDQA.
[Info]: Loaded /opt/gemstone/GsDevKit_home/server/stones/teststone344/product/lib/libgcilnk-3.4.4-64.so
Configuration Files |
---|
System File: /opt/gemstone/GsDevKit_home/server/stones/teststone344/extents/system.conf |
Executable File: /opt/gemstone/GsDevKit_home/server/stones/teststone344/gem.conf |
_____ |
Reading config file /opt/gemstone/GsDevKit_home/server/stones/teststone344/extents/system.conf Reading config file /opt/gemstone/GsDevKit_home/server/stones/teststone344/gem.conf
| Gem Configuration Options for process id 803 | |_____|
DUMP_OPTIONS = TRUE; GEM_ABORT_MAX_CRS = 0; GEM_CACHE_WARMER_ARGS = ""; GEM_CACHE_WARMER_MID_CACHE_ARGS = ""; GEM_COMPRESS_TRANLOG_RECORDS = TRUE; GEM_FREE_FRAME_CACHE_SIZE = -1; GEM_FREE_FRAME_LIMIT = -1; GEM_FREE_PAGEIDS_CACHE = 200; GEM_HALT_ON_ERROR = -1; GEM_KEEP_MIN_SOFTREFS = 0; GEM_KERBEROS_KEYTAB_FILE = ""; GEM_KEYRING_DIRS = ""; GEM_MAX_SMALLTALK_STACK_DEPTH = 1000; GEM_NATIVE_CODE_ENABLED = 2; GEM_PRIVATE_PAGE_CACHE_KB = 960KB; GEM_PGSVR_COMPRESS_PAGE_TRANSFERS = FALSE; GEM_PGSVR_FREE_FRAME_CACHE_SIZE = -1; GEM_PGSVR_FREE_FRAME_LIMIT = -1; GEM_PGSVR_UPDATE_CACHE_ON_READ = FALSE; GEM_PGSVR_USE_SSL = FALSE; GEM_READ_AUTH_ERR_STUBS = FALSE; GEM_REPOSITORY_IN_MEMORY = FALSE; GEM_RPC_KEEPALIVE_INTERVAL = 0; GEM_RPCGCI_TIMEOUT = 0; GEM_RPC_USE_SSL = TRUE; GEM_SOFTREF_CLEANUP_PERCENT_MEM = 50; GEM_STATMONITOR_ARGS = ""; GEM_STATMONITOR_MID_CACHE_ARGS = ""; GEM_TEMPOBJ_AGGRESSIVE_STUBBING = TRUE; GEM_TEMPOBJ_CACHE_SIZE = 50000KB; GEM_TEMPOBJ_CONSECUTIVE_MARKSWEEP_LIMIT = 50; GEM_TEMPOBJ_MESPACE_SIZE = 0; GEM_TEMPOBJ_OOMSTATS_CSV = FALSE; GEM_TEMPOBJ_OOPMAP_SIZE = 0; GEM_TEMPOBJ_SCOPES_SIZE = 2000; GEM_TEMPOBJ_PERMGEN_SIZE = 0; GEM_TEMPOBJ_POMGEN_SIZE = 0; GEM_TEMPOBJ_POMGEN_PRUNE_ON_VOTE = 90; GEM_TEMPOBJ_POMGEN_SCAVENGE_INTERVAL = 1800; GEM_TEMPOBJ_START_ADDR not used on this platform LOG_WARNINGS = TRUE; SHR_NUM_FREE_FRAME_SERVERS = -1; SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_POLICY = 0; SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_SIZE_MB = 0; SHR_PAGE_CACHE_LOCKED = FALSE; SHR_PAGE_CACHE_NUM_PROCS = 524273; SHR_PAGE_CACHE_NUM_SHARED_COUNTERS = 1900; SHR_PAGE_CACHE_PERMISSIONS = 0660; SHR_PAGE_CACHE_SIZE_KB = 500000KB; SHR_TARGET_FREE_FRAME_COUNT = -1; SHR_WELL_KNOWN_PORT_NUMBER = 0; CONFIG_WARNINGS_FATAL = FALSE; (vmGc spaceSizes: eden init 2048K max 9344K , survivor init 448K max 1600K, vmGc old max 37440K, code max 10048K, perm max 5056K, pom 10 * 4160K = 41600K, vmGc remSet 1156K, meSpace max 51288K oopMapSize 262144 max footprint 164M)
GemStone: Error Nonfatal a UserDefinedError occurred (error 2318), reason:halt, commit conflicts Error Category: 231169 [GemStone] Number: 2318 Arg Count: 1 Context : 53078529 exception : 53074433 Arg 1: [20 sz:0 cls: 76289 UndefinedObject] nil topaz > exec iferr 1 : stack ==> 1 UserDefinedError (AbstractException) >> _signalWith: @6 line 25 [methId 4434177] receiver [53074433 sz:10 cls: 132609 UserDefinedError] a UserDefinedError occurred (error 2318), reason:halt, commit conflicts inCextensionArg [20 sz:0 cls: 76289 UndefinedObject] nil res [20 sz:0 cls: 76289 UndefinedObject] nil (skipped 1 evaluationTemps) 2 UserDefinedError (AbstractException) >> signal @2 line 47 [methId 4434433] receiver [53074433 sz:10 cls: 132609 UserDefinedError] a UserDefinedError occurred (error 2318), reason:halt, commit conflicts (skipped 2 evaluationTemps) 3 OXZnServer (Object) >> error: @6 line 7 [methId 4090881] receiver [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer messageString [253833217 sz:16 cls: 74753 String] commit conflicts (skipped 2 evaluationTemps) 4 [] in GemServer >> doTransaction: @9 line 9 [methId 253976833] self [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer receiver [53008897 sz:5 cls: 128001 ExecBlock1] anExecBlock1 conflicts [53004545 sz:14 cls: 111361 SymbolDictionary] aSymbolDictionary self [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer (skipped 3 evaluationTemps) _VC [53009409 sz:4 cls: 134913 VariableContext] aVariableContext 5 OXZnServer (GemServer) >> doTransaction:onConflict: @8 line 10 [methId 252759809] receiver [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer aBlock [52995841 sz:5 cls: 127745 ExecBlock0] anExecBlock0 conflictBlock [53008897 sz:5 cls: 128001 ExecBlock1] anExecBlock1 conflicts [53004545 sz:14 cls: 111361 SymbolDictionary] aSymbolDictionary (skipped 2 evaluationTemps) 6 OXZnServer (GemServer) >> doTransaction: @3 line 5 [methId 248413953] receiver [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer aBlock [52995841 sz:5 cls: 127745 ExecBlock0] anExecBlock0 (skipped 4 evaluationTemps) _VC [52990721 sz:4 cls: 134913 VariableContext] aVariableContext 7 OXZnServer (GemServer) >> transactionMode: @3 line 4 [methId 252762625] receiver [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer aSymbol [236033 sz:11 cls: 110849 Symbol] manualBegin (skipped 3 evaluationTemps) _VC [52982017 sz:5 cls: 134913 VariableContext] aVariableContext 8 OXZnServer (GemServer) >> scriptServicePrologOn: @11 line 10 [methId 248409089] receiver [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer portOrNil [72018 sz:0 cls: 74241 SmallInteger] 9002 == 0x232a (skipped 2 evaluationTemps) 9 OXZnServer (GemServer) >> scriptStartServiceOn: @2 line 5 [methId 248390913] receiver [296324097 sz:16 cls: 280411905 OXZnServer] anOXZnServer portOrResourceName [72018 sz:0 cls: 74241 SmallInteger] 9002 == 0x232a (skipped 3 evaluationTemps) 10 Executed Code @3 line 1 [methId 52966657] receiver [20 sz:0 cls: 76289 UndefinedObject] nil (skipped 2 evaluationTemps) 11 GsNMethod class >> _gsReturnToC @1 line 1 [methId 4517889] receiver [144897 sz:19 cls: 744193 GsNMethod class] GsNMethod topaz 1> topaz 1> run | logEntry | System beginTransaction. (logEntry := ObjectLogEntry fatal: 'OXServer_server_9002: topaz exit' object: 'pid: ', (System gemVersionReport at: 'processId') printString) addToLog. (GemServerRegistry gemServerNamed: 'OXServer') ifNotNil: [:gemServer | gemServer crashLog add: (9002) asString -> logEntry ]. System commitTransaction. % [268 sz:0 cls: 68097 Boolean] true topaz 1> Logging out session 1. --- 26.07.2020 11:16:34.925 CEST Logging out
Hello Dale, I rarely ended with the desired number of running topaz processes when starting a zinc server on multiple ports. Investigation of the logs showed transaction conflicts when setting the shared state of instVar transactionMode. This fix works for me. Br, Ralph