· 10 years ago · Sep 05, 2016, 05:34 PM
1//-------------------------- 9/5/2016 -- 19:33:05 -- v1.1.3.2 --
2ECHO 2016-09-05 19:33:05.806 {} <> [0] --------- Loading DIRS ---------
3INFO 2016-09-05 19:33:05.806 {} <> [0] v1.1.3.2
4ECHO 2016-09-05 19:33:05.806 {} <> [0]
5ECHO 2016-09-05 19:33:05.885 {01} <onStart> [0]
6--------- Initializing Directory: scripts ---------
7ECHO 2016-09-05 19:33:05.885 {02} <initServer> [0]
8--------- Initializing LiF Server: Server Scripts ---------
9art/terrains/materials.cs (0): Unable to find function initGlobalRemapIndex
10ECHO 2016-09-05 19:33:05.885 {02} <initServer> [0] Loading CmConfiguration
11ECHO 2016-09-05 19:33:05.885 {02} <initServer> [0] Init of DB interface
12INFO 2016-09-05 19:33:05.901 {02} <initServer> [0] WORLD_ID=1
13WARN 2016-09-05 19:33:05.901 {02} <initServer> [0] DB::RS(1 ms) SHOW DATABASES LIKE 'lif_1';
14ECHO 2016-09-05 19:33:05.901 {02} <initServer> [0] Patching database [1/2]...
15WARN 2016-09-05 19:33:05.901 {02} <initServer> [0] DB::noRS(0 ms) USE `lif_1`;
16WARN 2016-09-05 19:33:05.916 {02} <initServer> [0] DB::mNoRS(14 ms)
17
18-- NOTE: do not use DELIMITER here
19
20-- NOTE: do not use DEFINER for stored procedures and functions here
21
22
23
24DROP PROCEDURE IF EXISTS _transferSkill;
25
26CREATE PROCEDURE _transferSkill(
27
28^IN `in_oldSkillTypeID` INT UNSIGNED,
29
30^IN `in_newSkillTypeID` INT UNSIGNED
31
32)
33
34BEGIN
35
36
37
38-- allocate needed skill with 0 values at first.
39
40-- don't use "insert ... select on duplicate key update" here - it is not so safe for replication.
41
42insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
43
44^select c.ID, in_newSkillTypeID as SkillTypeID, 0 as newSkillAmount, 1 as newLockStatus
45
46^^from `character` c
47
48^^join skills s on s.CharacterID = c.ID
49
50^^where s.SkillTypeID = in_oldSkillTypeID
51
52^^^and !exists(select * from skills_new sn where sn.CharacterID = c.ID and sn.SkillTypeID = in_newSkillTypeID)
53
54^^order by c.ID;
55
56
57
58-- transfer skill values
59
60update skills_new sn
61
62^join skills s on sn.CharacterID = s.CharacterID and sn.SkillTypeID = in_newSkillTypeID and s.SkillTypeID = in_oldSkillTypeID
63
64^set sn.SkillAmount = (sn.SkillAmount + s.SkillAmount);
65
66
67
68-- empty old skill values
69
70update skills
71
72^set SkillAmount = 0
73
74^where SkillTypeID = in_oldSkillTypeID;
75
76
77
78-- allocate child skills, if our skill has value >= 30
79
80insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
81
82^select sn.CharacterID, stn.ID, 0 as newSkillAmount, 1 as newLockStatus
83
84^from skill_type_new stn
85
86^join skills_new sn on sn.SkillTypeID = stn.Parent
87
88^where stn.Parent = in_newSkillTypeID
89
90^^and sn.SkillAmount >= 30*10000000
91
92^^and !exists(select * from skills_new sn2 where sn2.CharacterID = sn.CharacterID and sn2.SkillTypeID = stn.ID);
93
94
95
96-- distribute skills with value > 100 to first child skill with value < 100
97
98-- (we can't use ORDER BY and LIMIT in multiple-table update. Also, we can't use LIMIT in subqueries due to MariaDB compatibility reasons)
99
100update skills_new sn
101
102-- select sn.SkillAmount as oldVal, (sn.SkillAmount + (sn_base.SkillAmount - 100*10000000)) as newVal, sn.* from skills_new sn
103
104^join skill_type_new stn on stn.ID = sn.SkillTypeID
105
106^-- join skills_new sn_base on sn_base.SkillTypeID = stn.Parent and sn_base.CharacterID = sn.CharacterID -- we can't use updated table in subquery, so implicitly copy it into a temporary table
107
108^join (select SkillTypeID, CharacterID, SkillAmount from skills_new where SkillTypeID = in_newSkillTypeID) as sn_base
109
110^^on sn_base.SkillTypeID = stn.Parent and sn_base.CharacterID = sn.CharacterID
111
112^set sn.SkillAmount = (sn.SkillAmount + (sn_base.SkillAmount - 100*10000000))
113
114^where sn_base.SkillAmount > 100*10000000
115
116^^-- and sn.SkillAmount < 100*10000000
117
118^^-- and stn.Parent = 1
119
120^^and stn.ID in
121
122^^(
123
124^^^select min(stn2.ID)
125
126^^^from skill_type_new stn2
127
128^^^-- join skills_new sn2 on sn2.SkillTypeID = stn2.ID -- we can't use updated table in subquery, so implicitly copy it into a temporary table
129
130^^^join (select SkillTypeID, CharacterID, SkillAmount from skills_new where SkillAmount < 100*10000000) as sn2
131
132^^^^on sn2.SkillTypeID = stn2.ID
133
134^^^where stn2.Parent = in_newSkillTypeID
135
136^^^^and sn2.CharacterID = sn.CharacterID
137
138^^^^-- and sn2.SkillAmount < 100*10000000
139
140^^);
141
142^-- order by stn.ID
143
144^-- limit 1
145
146
147
148-- cap skill values at 100
149
150update skills_new
151
152^set SkillAmount = 100*10000000
153
154^where SkillAmount > 100*10000000;
155
156
157
158END;
159
160
161
162
163
164DROP PROCEDURE IF EXISTS _updateScript;
165
166/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER' */;
167
168CREATE PROCEDURE _updateScript()
169
170BEGIN
171
172
173
174-- 0.2.12.0
175
176-- guilds & claims
177
178if(!sf_isConstraintExists('character', 'FK_character_guild_roles')) then
179
180^CREATE TABLE IF NOT EXISTS `guild_roles` (
181
182^^`ID` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
183
184^^`Name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
185
186^^PRIMARY KEY (`ID`)
187
188^) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
189
190
191
192^INSERT INTO `guild_roles` (`ID`, `Name`) VALUES
193
194^^(1, 'Leader'),
195
196^^(2, 'Minor leader'),
197
198^^(3, '1st tier member'),
199
200^^(4, '2nd tier member'),
201
202^^(5, '3rd tier member'),
203
204^^(6, 'Normal member'),
205
206^^(7, 'Recruit');
207
208
209
210^CREATE TABLE IF NOT EXISTS `guild_types` (
211
212^^`ID` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
213
214^^`GuildLevel` int(11) NOT NULL,
215
216^^`Name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
217
218^^`MessageID` int(10) unsigned NOT NULL,
219
220^^PRIMARY KEY (`ID`)
221
222^) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
223
224
225
226^INSERT INTO `guild_types` (`ID`, `GuildLevel`, `Name`, `MessageID`) VALUES
227
228^^(1, 0, 'Band', 680),
229
230^^(2, 1, 'Order', 681),
231
232^^(3, 2, 'Country', 682),
233
234^^(4, 3, 'Kingdom', 683);
235
236
237
238^CREATE TABLE IF NOT EXISTS `guild_standing_types` (
239
240^^`ID` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
241
242^^`Name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
243
244^^PRIMARY KEY (`ID`)
245
246^) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
247
248
249
250^INSERT INTO `guild_standing_types` (`ID`, `Name`) VALUES
251
252^^(1, 'War'),
253
254^^(2, 'Hostile'),
255
256^^(3, 'Neutral'),
257
258^^(4, 'Friendly'),
259
260^^(5, 'Ally');
261
262
263
264^CREATE TABLE IF NOT EXISTS `deleted_character_info` (
265
266^^`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
267
268^^`ExCharID` int(10) unsigned NOT NULL,
269
270^^`CharName` varchar(9) COLLATE utf8_unicode_ci NOT NULL,
271
272^^`CharLastName` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
273
274^^`DeletedTimestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
275
276^^PRIMARY KEY (`ID`)
277
278^) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
279
280
281
282^CREATE TABLE IF NOT EXISTS `deleted_guild_info` (
283
284^^`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
285
286^^`ExGuildID` int(10) unsigned NOT NULL,
287
288^^`GuildName` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
289
290^^`GuildTag` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
291
292^^`DeletedTimestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
293
294^^PRIMARY KEY (`ID`)
295
296^) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
297
298
299
300^CREATE TABLE IF NOT EXISTS `guilds` (
301
302^^`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
303
304^^`Name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
305
306^^`GuildTypeID` tinyint(3) unsigned NOT NULL,
307
308^^`IsActive` tinyint(3) unsigned NOT NULL DEFAULT '1',
309
310^^`GuildCharter`
311ECHO 2016-09-05 19:33:05.916 {02} <initServer> [0] Patching database [2/2]...
312WARN 2016-09-05 19:33:05.920 {02} <initServer> [0] DB::noRS(1 ms) USE `lif_1`;
313WARN 2016-09-05 19:33:05.920 {02} <initServer> [0] DB::mNoRS(2 ms) /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
314
315DELETE FROM `animal_breeds`;
316
317DELETE FROM `objects_types`;
318
319DELETE FROM `recipe`;
320
321DELETE FROM `recipe_requirement`;
322
323/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
324
325--
326
327-- MySQL dump 10.13 Distrib 5.7.8-rc, for Win32 (AMD64)
328
329--
330
331-- Host: localhost Database: cm
332
333-- ------------------------------------------------------
334
335-- Server version^5.5.40-MariaDB
336
337/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
338
339/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
340
341/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
342
343/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
344
345
346
347--
348
349-- Dumping data for table `animal_breeds`
350
351--
352
353-- ORDER BY: `ID`
354
355
356
357INSERT INTO `animal_breeds` (`ID`, `is_strong_animal`, `is_use_threat_accumulation`, `base_hp`, `weapon_datablock_name`, `weapon_weight`, `fast_hit_damaging_distance`, `fast_hit_starting_distance`, `fast_hit_damaging_sector`, `fast_hit_base_speed_min`, `fast_hit_base_speed_max`, `power_hit_damaging_distance`, `power_hit_starting_distance`, `power_hit_damaging_sector`, `power_hit_base_speed_min`, `power_hit_base_speed_max`, `power_attack_probability`, `walk_animation_speed`, `run_animation_speed`, `walk_speed`, `run_speed`, `creature_body_radius`, `alertness_range_min`, `alertness_range_max`, `aggression_range_min`, `aggression_range_max`, `alertness_range_presence_threat_speed`, `alertness_range_presence_memory_duration`, `aggression_range_presence_threat_speed`, `aggression_range_presence_memory_duration`, `threat_from_damage_per_hit_point`, `become_alerted_threshold_on`, `become_alerted_threshold_off`, `become_aggressive_threshold_on`, `become_aggressive_threshold_off`, `sleep_probab`, `eat_probab`, `stand_probab`, `walk_probab`, `run_probab`, `sleep_duration_min`, `sleep_duration_max`, `non_sleep_action_duration_max`, `traveling_distance_min`, `traveling_distance_max`, `start_flee_condition_distance`, `flee_mode_threat_afteraction_duration`, `flee_order_distance_min`, `flee_order_distance_max`, `raw_corpse_object_type_id`, `skinned_corpse_object_type_id`) VALUES
358
359(752,1,1,450,'Bear_Paw',10,1,0.7,60,10,15,1.3,1.2,90,25,40,0.4,0.87,0.75,2,9,3,30,60,15,30,30,10,50,10,300,200,0,300,0,1,3,4,1,0,10,20,8,15,40,15,15,20,40,911,924),
360
361(753,0,0,180,'Wild_Horse_Hoof',10,1.4,1.3,45,10,15,1.5,1.3,90,20,30,0.25,1.09,0.59,3,10,1.5,10,20,10,20,20,8,25,5,50,20,0,50,30,1,3,4,1,2,10,20,8,15,40,15,15,20,40,912,925),
362
363(754,0,1,200,'Deer_Hoof',10,1.3,1.2,45,2,4,1.4,1.2,90,3,6,0.5,0.95,0.52,3,8,1.5,10,20,20,30,20,10,50,10,300,200,0,300,0,0,3,6,0,1,10,20,8,15,40,15,15,20,40,913,926),
364
365(755,1,1,150,'Wolf_Fang',10,0.5,0.4,45,5,10,0.7,0.5,90,15,25,0.35,1.72,1.21,3,6,1.2,25,45,10,25,20,10,50,10,300,200,0,300,0,1,3,4,1,0,10,20,8,15,40,15,15,20,40,915,928),
366
367(756,0,1,300,'Moose_Hoof',10,1.3,1.2,45,10,15,1.4,1.2,90,20,30,0.25,1,0.55,2,7,1.5,30,50,15,30,20,10,40,10,200,150,0,150,30,1,3,4,1,0,10,20,8,15,40,15,15,20,40,916,929),
368
369(757,1,0,200,'Boar_Tusk',10,0.5,0.4,45,5,10,0.7,0.5,90,15,25,0.25,1.76,1.06,2,8,1.5,10,20,10,20,10,7,25,5,40,20,0,50,30,1,3,4,1,0,10,20,8,15,40,15,15,20,40,917,930),
370
371(758,0,0,80,'Sow_Tusk',10,0.8,0.7,45,3,5,0.9,0.7,90,10,15,0.25,1.76,1.06,2,5,1,10,25,10,20,10,8,25,5,50,20,0,50,30,1,3,4,1,0,10,20,8,15,40,15,15,20,40,918,931),
372
373(759,0,0,100,'Mutton_Horns',10,0.5,0.4,45,1,3,0.7,0.5,90,3,8,0.5,2.17,1.04,2,6,1.2,10,20,20,30,20,8,50,5,50,10,0,40,20,0,3,6,0,1,10,20,8,15,40,15,12,20,40,919,932),
374
375(760,0,0,250,'Bull_Horns',10,1.3,1.2,45,1,3,1.4,1.2,90,2,8,0.5,1.08,0.55,3,6,2.5,20,30,10,20,20,8,50,5,30,10,0,40,20,0,3,6,0,0,10,20,8,15,40,15,15,20,40,920,933),
376
377(761,0,0,180,'Cow_Horns',10,1,0.9,45,1,3,1.1,0.9,90,2,4,0.5,1.08,0.55,2,6,2.5,10,20,10,20,20,8,50,5,40,10,0,40,20,0,3,6,0,0,10,20,8,15,40,15,15,20,40,921,934),
378
379(762,2,0,15,'',10,0.5,0.4,45,1,3,0.7,0.5,90,2,4,0.5,4,2.57,2,6,2.5,10,20,5,10,20,6,50,5,40,10,0,40,20,0,3,6,0,0,10,20,8,10,40,15,15,20,40,922,935),
380
381(763,2,0,15,'',10,0.5,0.4,45,1,3,0.7,0.5,90,2,4,0.5,1.05,0.98,3,10,2.5,10,20,5,10,20,6,50,5,50,10,0,40,20,0,3,6,0,0,10,20,8,15,40,15,15,20,40,923,936),
382
383(778,0,1,120,'Hind_Hoof',10,1.3,1.2,45,1,3,1.4,1.2,90,2,4,0.5,0.95,0.52,2,6,1.5,10,20,20,30,20,10,50,10,300,200,0,300,0,0,3,6,0,1,10,20,8,15,40,15,15,20,40,914,927);
384
385
386
387--
388
389-- Dumping data for table `objects_types`
390
391--
392
393-- ORDER BY: `ID`
394
395
396
397INSERT INTO `objects_types` (`ID`, `ParentID`, `Name`, `IsContainer`, `IsMovableObject`, `IsUnmovableobject`, `IsTool`, `IsDevice`, `IsDoor`, `MaxContSize`, `Length`, `MaxStackSize`, `UnitWeight`, `BackgndImage`, `WorkAreaTop`, `WorkAreaLeft`, `WorkAreaWidth`, `WorkAreaHeight`, `BtnCloseTop`, `BtnCloseLeft`, `FaceImage`, `Description`, `BasePrice`, `OwnerTimeout`) VALUES
398
399(1,NULL,'System Objects',0,0,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Root type for other utility types',NULL,NULL),
400
401(2,NULL,'Gameplay Objects',0,0,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Root type for gameplay types',0,NULL),
402
403(3,1,'Inventory',1,0,0,0,0,0,1000000,9,0,0,'art\\images\\rootinventory',110,35,340,450,37,381,'','Root player inventory',NULL,NULL),
404
405(4,1,'object_inventory',1,0,0,0,0,0,60000000,10,0,0,'art\\images\\building_window.png',352,89,575,177,46,695,'','Building window inventory',NULL,NULL),
406
407(5,2,'Equipment Objects',0,0,0,0,0,0,0,0,0,0,'',0,0,0,0,0,0,'','Objects that a present in 3D and 2D world',0,NULL),
408
409(6,2,'World objects',0,0,0,0,0,0,0,0,0,0,'',0,0,0,0,0,0,'','Objects that a present in 3D world',5,NULL),
410
411(7,2,'Inventory objects',0,0,0,0,0,0,0,0,0,0,'',0,0,0,0,0,0,'','Objects that a present only in 2D world',0,NULL),
412
413(8,5,'Weapons',0,0,0,0,0,0,0,0,0,0,'',0,0,0,0,0,0,'','All weapon types',0,NULL),
414
415(9,5,'Armors',0,0,0,0,0,0,0,0,0,0,'',0,0,0,0,0,0,'','All armor types',3,NULL),
416
417(10,5,'Tools',0,0,0,1,0,0,0,0,0,0,'',0,0,0,0,0,0,'','All tool types that can be held in hands and represented in 3D world',1,NULL),
418
419(11,5,'Miscellaneous',0,0,0,0,0,0,0,0,0,0,'',0,0,0,0,0,0,'',
420ECHO 2016-09-05 19:33:05.920 {02} <initServer> [0] Validating database...
421ERRR 2016-09-05 19:33:05.920 {02} <initServer> [0] DB error #1305: PROCEDURE lif_1.sp_checkForeignKeys does not exist. Query: CALL sp_checkForeignKeys('animal_breeds', 1, 1);
422WARN 2016-09-05 19:33:05.920 {02} <initServer> [0] DB::mfRS(1 ms) CALL sp_checkForeignKeys('animal_breeds', 1, 1);
423ERRR 2016-09-05 19:33:05.920 {02} <initServer> [0] CmServerInfoManager::_applyDbPatch() - call to sp_checkForeignKeys failed
424ERRR 2016-09-05 19:33:05.920 {02} <initServer> [0] CmServerInfoManager::processLocalWorlds() - can't access to db for world id=1
425ERRR 2016-09-05 19:33:05.920 {02} <initServer> [0] Fatal: Can't init local world (id=1). Terminating.
426quit() -- quit requested!
427ECHO 2016-09-05 19:33:05.920 {} <> [0] Engine initialized...
428ECHO 2016-09-05 19:33:05.926 {} <> [0] Thread pool initialized, threads: 23
429WARN 2016-09-05 19:33:05.926 {} <> [1] Warning - Tick [1] took 690 (>64) ms!
430core/scripts/server/server.cs (78): Unable to find function destroyWorld
431INFO 2016-09-05 19:33:05.926 {01} <onExit> [1] The server has been shut down!
432ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x8EC4]
433ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x13588]
434ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x8718]
435ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x2A4C]
436ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0xD7FC]
437ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x5B24]
438ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x12380]
439ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x9F50]
440ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x27E0]
441ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x71EC]
442ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x126B8]
443ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x16B78]
444ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x1722C]
445ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x14020]
446ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x15AF4]
447ECHO 2016-09-05 19:33:05.926 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x8A40]
448ECHO 2016-09-05 19:33:05.928 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x89B8]
449ECHO 2016-09-05 19:33:05.928 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x1B60]
450ECHO 2016-09-05 19:33:05.928 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x9170]
451ECHO 2016-09-05 19:33:05.928 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x1021C]
452ECHO 2016-09-05 19:33:05.928 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x15DB4]
453ECHO 2016-09-05 19:33:05.928 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x16970]
454ECHO 2016-09-05 19:33:05.928 {} <<Thread>> [1] Thread worker terminated [T:NONE:0x13544]
455ECHO 2016-09-05 19:33:05.928 {} <> [1] Thread pool shut down