Advertisement
Guest User

Untitled

a guest
Dec 21st, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.82 KB | None | 0 0
  1. //-- 12/22/2019 -- 04:28:41 UTC ======== 12/22/2019 -- 01:28:41 Local-- yo_1.4.4.5 --
  2. ECHO 2019-12-22 01:28:41.618 {} <> [0] Processor Init:
  3. ECHO 2019-12-22 01:28:41.618 {} <> [0] Features detected: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC MTRR SEP PGE MCA CMOV PAT PSE36 CLFLUSH DTS ACPI MMX FXSR SSE SSE2 SS HT TM PBE PNI PCLMUL DTS64 MONITOR DS_CPL VMX SMX EST TM2 SSSE3 CX16 XTPR PDCM SSE4_1 SSE4_2 SYSCALL XD POPCNT AES XSAVE OSXSAVE AVX RDTSCP LM LAHF_LM CONSTANT_TSC F16C RDRAND X2APIC HTT
  4. ECHO 2019-12-22 01:28:41.618 {} <> [0] GenuineIntel, Bloomfield (Xeon)
  5. ECHO 2019-12-22 01:28:41.618 {} <> [0] MP detected [4 cores, 8 logical, 1 physical]
  6. ECHO 2019-12-22 01:28:41.618 {} <> [0]
  7. ECHO 2019-12-22 01:28:41.618 {} <> [0] Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz, ~3.29 Ghz
  8. ECHO 2019-12-22 01:28:41.618 {} <> [0] Initializing platform...
  9. ECHO 2019-12-22 01:28:41.618 {} <> [0] Done
  10. INFO 2019-12-22 01:28:41.680 {01} <defaultParseArgs> [0] -worldID == 1
  11. ECHO 2019-12-22 01:28:41.680 {} <> [0]
  12. ECHO 2019-12-22 01:28:41.680 {} <> [0] --------- Loading DIRS ---------
  13. INFO 2019-12-22 01:28:41.680 {} <> [0] vyo_1.4.4.5
  14. ECHO 2019-12-22 01:28:41.680 {} <> [0]
  15. ECHO 2019-12-22 01:28:41.774 {01} <onStart> [0]
  16. --------- Initializing Directory: scripts ---------
  17. ECHO 2019-12-22 01:28:41.789 {02} <initServer> [0]
  18. --------- Initializing LiF Server: Server Scripts ---------
  19. ECHO 2019-12-22 01:28:41.789 {02} <initServer> [0] Loading CmConfiguration
  20. ECHO 2019-12-22 01:28:41.789 {02} <initServer> [0] Init of DB interface
  21. INFO 2019-12-22 01:28:41.789 {03} <checkServerIdLockFile> [0] Renaming log file name from 'logs/2019-12-22/S0_R16RK4U17-1_2019-12-22-01-28-41_p3052.log' to 'logs/2019-12-22/S1_R16RK4U17-1_2019-12-22-01-28-41_p3052.log'...
  22. //-- 12/22/2019 -- 04:28:41 UTC ======== 12/22/2019 -- 01:28:41 Local-- yo_1.4.4.5 --
  23. INFO 2019-12-22 01:28:41.789 {03} <checkServerIdLockFile> [0] Log file name successfully renamed!
  24. INFO 2019-12-22 01:28:41.789 {02} <initServer> [0] WORLD_ID=1
  25. WARN 2019-12-22 01:28:41.805 {02} <initServer> [0] DB::RS(1 ms) SHOW DATABASES LIKE 'lif_1';
  26. WARN 2019-12-22 01:28:41.805 {02} <initServer> [0] DB::noRS(0 ms) CREATE DATABASE IF NOT EXISTS `lif_1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
  27. WARN 2019-12-22 01:28:41.805 {02} <initServer> [0] DB::noRS(0 ms) USE `lif_1`;
  28. ECHO 2019-12-22 01:28:41.805 {02} <initServer> [0] Creating new database...
  29. WARN 2019-12-22 01:28:41.899 {02} <initServer> [0] DB::mNoRS(95 ms) -- Dumping structure for table cm.account
  30. DROP TABLE IF EXISTS `account`;
  31. CREATE TABLE IF NOT EXISTS `account` (
  32. `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  33. `IsActive` tinyint(1) unsigned NOT NULL DEFAULT '1',
  34. `IsGM` tinyint(1) unsigned NOT NULL DEFAULT '0',
  35. `SteamID` bigint(20) unsigned NOT NULL,
  36. PRIMARY KEY (`ID`),
  37. UNIQUE KEY `UNQ_SteamID` (`SteamID`)
  38. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  39.  
  40.  
  41. -- Dumping structure for table cm.animal_breeds
  42. DROP TABLE IF EXISTS `animal_breeds`;
  43. CREATE TABLE IF NOT EXISTS `animal_breeds` (
  44. `ID` int(10) unsigned NOT NULL,
  45. `is_strong_animal` tinyint(3) unsigned NOT NULL,
  46. `base_hp` float unsigned NOT NULL,
  47. `weapon_datablock_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  48. `weapon_weight` float unsigned NOT NULL,
  49. `fast_hit_damaging_distance` float unsigned NOT NULL,
  50. `fast_hit_starting_distance` float unsigned NOT NULL,
  51. `fast_hit_damaging_sector` float unsigned NOT NULL,
  52. `fast_hit_base_speed_min` float unsigned NOT NULL,
  53. `fast_hit_base_speed_max` float unsigned NOT NULL,
  54. `power_hit_damaging_distance` float unsigned NOT NULL,
  55. `power_hit_starting_distance` float unsigned NOT NULL,
  56. `power_hit_damaging_sector` float unsigned NOT NULL,
  57. `power_hit_base_speed_min` float unsigned NOT NULL,
  58. `power_hit_base_speed_max` float unsigned NOT NULL,
  59. `power_attack_probability` float unsigned NOT NULL,
  60. `walk_animation_speed` float unsigned NOT NULL,
  61. `run_animation_speed` float unsigned NOT NULL,
  62. `walk_speed` float unsigned NOT NULL,
  63. `run_speed` float unsigned NOT NULL,
  64. `creature_body_radius` float unsigned NOT NULL,
  65. `alertness_range_min` float unsigned NOT NULL,
  66. `alertness_range_max` float unsigned NOT NULL,
  67. `aggression_range_min` float unsigned NOT NULL,
  68. `aggression_range_max` float unsigned NOT NULL,
  69. `alertness_range_presence_threat_speed` float unsigned NOT NULL,
  70. `alertness_range_presence_memory_duration` float unsigned NOT NULL,
  71. `aggression_range_presence_threat_speed` float unsigned NOT NULL,
  72. `aggression_range_presence_memory_duration` float unsigned NOT NULL,
  73. `threat_from_damage_per_hit_point` float unsigned NOT NULL,
  74. `become_alerted_threshold_on` float unsigned NOT NULL,
  75. `become_alerted_threshold_off` float unsigned NOT NULL,
  76. `become_aggressive_threshold_on` float unsigned NOT NULL,
  77. `become_aggressive_threshold_off` float unsigned NOT NULL,
  78. `sleep_probab` float unsigned NOT NULL,
  79. `eat_probab` float unsigned NOT NULL,
  80. `stand_probab` float unsigned NOT NULL,
  81. `walk_probab` float unsigned NOT NULL,
  82. `run_probab` float unsigned NOT NULL,
  83. `sleep_duration_min` float unsigned NOT NULL,
  84. `sleep_duration_max` float unsigned NOT NULL,
  85. `non_sleep_action_duration_max` float unsigned NOT NULL,
  86. `traveling_distance_min` float unsigned NOT NULL,
  87. `traveling_distance_max` float unsigned NOT NULL,
  88. `start_flee_condition_distance` float unsigned NOT NULL,
  89. `flee_mode_threat_afteraction_duration` float unsigned NOT NULL,
  90. `flee_order_distance_min` float unsigned NOT NULL,
  91. `flee_order_distance_max` float unsigned NOT NULL,
  92. `raw_corpse_object_type_id` int(11) unsigned NOT NULL,
  93. `skinned_corpse_object_type_id` int(11) unsigned NOT NULL,
  94. PRIMARY KEY (`ID`),
  95. KEY `FK_raw_corpse_object_type_id` (`raw_corpse_object_type_id`),
  96. KEY `FK_skinned_corpse_object_type_id` (`skinned_corpse_object_type_id`),
  97. CONSTRAINT `FK_animal_breeds__objects_types` FOREIGN KEY (`ID`) REFERENCES `objects_types` (`ID`),
  98. CONSTRAINT `FK_raw_corpse_object_type_id` FOREIGN KEY (`raw_corpse_object_type_id`) REFERENCES `objects_types` (`ID`),
  99. CONSTRAINT `FK_skinned_corpse_object_type_id` FOREIGN KEY (`skinned_corpse_object_type_id`) REFERENCES `objects_types` (`ID`)
  100. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  101.  
  102. /*!40000 ALTER TABLE `animal_breeds` DISABLE KEYS */;
  103. INSERT INTO `animal_breeds` (`ID`, `is_strong_animal`, `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
  104. ^(752, 1, 300, 'Bear_Paw', 10, 1, 0.7, 60, 10, 15, 1.3, 1.2, 90, 25, 40, 0.25, 0.87, 0.75, 2, 6, 3, 10, 20, 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, 911, 924),
  105. ^(753, 0, 200, 'Wild_Horse_Hoof', 10, 0.5, 0.4, 45, 10, 15, 0.7, 0.5, 90, 20, 30, 0.25, 1.09, 0.59, 2, 6, 1.5, 10, 20, 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, 912, 925),
  106. ^(754, 0, 100, 'Deer_Hoof', 10, 0.5, 0.4, 45, 1, 3, 0.7, 0.5, 90, 2, 4, 0.5, 0.95, 0.52, 2, 6, 1.5, 20, 30, 20, 30, 20, 8, 50, 5, 50, 10, 0, 40, 20, 0, 3, 6, 0, 0, 10, 20, 8, 15, 40, 15, 15, 20, 40, 913, 926),
  107. ^(755, 1, 100, 'Wolf_Fang', 10, 0.5, 0.4, 45, 5, 10, 0.7, 0.5, 90, 15, 25, 0.25, 1.72, 1.21, 2, 6, 1.2, 10, 20, 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, 9
  108. WARN 2019-12-22 01:28:41.899 {02} <initServer> [0] DB::noRS(0 ms) USE `lif_1`;
  109. WARN 2019-12-22 01:28:41.899 {02} <initServer> [0] DB::noRS(0 ms) USE `lif_1`;
  110. WARN 2019-12-22 01:28:41.914 {02} <initServer> [0] DB::mNoRS(6 ms) DROP TABLE IF EXISTS `_patch_execute_status`; CREATE TABLE `_patch_execute_status`( ^`Value` tinyint unsigned NOT NULL DEFAULT 0 ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci; INSERT INTO `_patch_execute_status` () VALUES ();
  111. ECHO 2019-12-22 01:28:41.914 {02} <initServer> [0] Patching database [1/2]...
  112. WARN 2019-12-22 01:28:41.914 {02} <initServer> [0] DB::noRS(0 ms) USE `lif_1`;
  113. WARN 2019-12-22 01:28:41.945 {02} <initServer> [0] DB::mNoRS(42 ms)
  114. -- NOTE: do not use DELIMITER here
  115. -- NOTE: do not use DEFINER for stored procedures and functions here
  116.  
  117. DROP PROCEDURE IF EXISTS _transferSkill;
  118. CREATE PROCEDURE _transferSkill(
  119. ^IN `in_oldSkillTypeID` INT UNSIGNED,
  120. ^IN `in_newSkillTypeID` INT UNSIGNED
  121. )
  122. BEGIN
  123.  
  124. -- allocate needed skill with 0 values at first.
  125. -- don't use "insert ... select on duplicate key update" here - it is not so safe for replication.
  126. insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
  127. ^select c.ID, in_newSkillTypeID as SkillTypeID, 0 as newSkillAmount, 1 as newLockStatus
  128. ^^from `character` c
  129. ^^join skills s on s.CharacterID = c.ID
  130. ^^where s.SkillTypeID = in_oldSkillTypeID
  131. ^^^and !exists(select * from skills_new sn where sn.CharacterID = c.ID and sn.SkillTypeID = in_newSkillTypeID)
  132. ^^order by c.ID;
  133.  
  134. -- transfer skill values
  135. update skills_new sn
  136. ^join skills s on sn.CharacterID = s.CharacterID and sn.SkillTypeID = in_newSkillTypeID and s.SkillTypeID = in_oldSkillTypeID
  137. ^set sn.SkillAmount = (sn.SkillAmount + s.SkillAmount);
  138.  
  139. -- empty old skill values
  140. update skills
  141. ^set SkillAmount = 0
  142. ^where SkillTypeID = in_oldSkillTypeID;
  143.  
  144. -- allocate child skills, if our skill has value >= 30
  145. insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
  146. ^select sn.CharacterID, stn.ID, 0 as newSkillAmount, 1 as newLockStatus
  147. ^from skill_type_new stn
  148. ^join skills_new sn on sn.SkillTypeID = stn.Parent
  149. ^where stn.Parent = in_newSkillTypeID
  150. ^^and sn.SkillAmount >= 30*10000000
  151. ^^and !exists(select * from skills_new sn2 where sn2.CharacterID = sn.CharacterID and sn2.SkillTypeID = stn.ID);
  152.  
  153. -- distribute skills with value > 100 to first child skill with value < 100
  154. -- (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)
  155. update skills_new sn
  156. -- select sn.SkillAmount as oldVal, (sn.SkillAmount + (sn_base.SkillAmount - 100*10000000)) as newVal, sn.* from skills_new sn
  157. ^join skill_type_new stn on stn.ID = sn.SkillTypeID
  158. ^-- 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
  159. ^join (select SkillTypeID, CharacterID, SkillAmount from skills_new where SkillTypeID = in_newSkillTypeID) as sn_base
  160. ^^on sn_base.SkillTypeID = stn.Parent and sn_base.CharacterID = sn.CharacterID
  161. ^set sn.SkillAmount = (sn.SkillAmount + (sn_base.SkillAmount - 100*10000000))
  162. ^where sn_base.SkillAmount > 100*10000000
  163. ^^-- and sn.SkillAmount < 100*10000000
  164. ^^-- and stn.Parent = 1
  165. ^^and stn.ID in
  166. ^^(
  167. ^^^select min(stn2.ID)
  168. ^^^from skill_type_new stn2
  169. ^^^-- 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
  170. ^^^join (select SkillTypeID, CharacterID, SkillAmount from skills_new where SkillAmount < 100*10000000) as sn2
  171. ^^^^on sn2.SkillTypeID = stn2.ID
  172. ^^^where stn2.Parent = in_newSkillTypeID
  173. ^^^^and sn2.CharacterID = sn.CharacterID
  174. ^^^^-- and sn2.SkillAmount < 100*10000000
  175. ^^);
  176. ^-- order by stn.ID
  177. ^-- limit 1
  178.  
  179. -- cap skill values at 100
  180. update skills_new
  181. ^set SkillAmount = 100*10000000
  182. ^where SkillAmount > 100*10000000;
  183.  
  184. END;
  185.  
  186. DROP FUNCTION IF EXISTS _getMaxSkillValue;
  187. CREATE FUNCTION `_getMaxSkillValue`(
  188. ^`in_parentSkillValue` INT UNSIGNED
  189. )
  190. ^RETURNS INT UNSIGNED
  191. BEGIN
  192. ^declare skillAmountMult INT UNSIGNED DEFAULT 10000000;
  193.  
  194. ^if(in_parentSkillValue < 30*skillAmountMult) then
  195. ^^return 0;
  196. ^elseif(in_parentSkillValue < 60*skillAmountMult) then
  197. ^^return (30*skillAmountMult - 1);
  198. ^end if;
  199.  
  200. ^return 100*skillAmountMult;
  201. END;
  202.  
  203. DROP PROCEDURE IF EXISTS _transferSkillStraight;
  204. CREATE PROCEDURE _transferSkillStraight(
  205. ^IN `in_oldSkillTypeID` INT UNSIGNED,
  206. ^IN `in_newSkillTypeID` INT UNSIGNED
  207. )
  208. BEGIN
  209.  
  210. declare skillAmountMult INT UNSIGNED DEFAULT 10000000;
  211.  
  212. -- allocate needed skill with 0 values at first.
  213. -- don't use "insert ... select on duplicate key update" here - it is not so safe for replication.
  214. insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
  215. ^select c.ID, in_newSkillTypeID as SkillTypeID, 0 as newSkillAmount, 1 as newLockStatus
  216. ^^from `character` c
  217. ^^join skills s on s.CharacterID = c.ID
  218. ^^where s.SkillTypeID = in_oldSkillTypeID
  219. ^^^and !exists(select * from skills_new sn where sn.CharacterID = c.ID and sn.SkillTypeID = in_newSkillTypeID)
  220. ^^order by c.ID;
  221.  
  222. -- transfer skill values
  223. update skills_new sn
  224. ^join skills s
  225. ^^on sn.CharacterID = s.CharacterID
  226. ^^and sn.SkillTypeID = in_newSkillTypeID
  227. ^^and s.SkillTypeID = in_oldSkillTypeID
  228. ^set sn.SkillAmount = (sn.SkillAmount + s.SkillAmount);
  229.  
  230. -- empty old skill values
  231. update skills
  232. ^set SkillAmount = 0
  233. ^where SkillTypeID = in_oldSkillTypeID;
  234.  
  235. -- allocate child skills, if our skill has value >= 30
  236. insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
  237. ^select sn.CharacterID, stn.ID, 0 as newSkillAmount, 1 as newLockStatus
  238. ^from skill_type_new stn
  239. ^join skills_new sn on sn.SkillTypeID = stn.Parent
  240. ^where stn.Parent = in_newSkillTypeID
  241. ^^and sn.SkillAmount >= 30*skillAmountMult
  242. ^^and !exists(select * from skills_new sn2 where sn2.CharacterID = sn.CharacterID and sn2.SkillTypeID = stn.ID);
  243.  
  244. -- cap skill values at 100
  245. update skills_new
  246. ^set SkillAmount = 100*10000000
  247. ^where SkillAmount > 100*10000000;
  248.  
  249. END;
  250.  
  251.  
  252. DROP PROCEDURE IF EXISTS _transferSkillToSkillChainLimit;
  253. CREATE PROCEDURE _transferSkillToSkillChainLimit(
  254. ^IN `in_oldSkillTypeID` INT UNSIGNED,
  255. ^IN `in_newBaseSkillTypeID` INT UNSIGNED,
  256. ^IN `in_skillAmountLimit` INT UNSIGNED
  257. )
  258. BEGIN
  259.  
  260. declare skillAmountMult INT UNSIGNED DEFAULT 10000000;
  261. declare skillAmountLimit INT UNSIGNED DEFAULT least(greatest(in_skillAmountLimit, 30), 100); -- clamp skill amount limit at 100
  262. declare newBaseSkillTypeID INT UNSIGNED DEFAULT in_newBaseSkillTypeID; -- currently used parent skill in skill chain
  263.  
  264. if(in_skillAmountLimit < 30 or in_skillAmountLimit > 100) then
  265. ^SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'in_skillAmountLimit should be between 30 and 100';
  266. end if;
  267.  
  268. while newBaseSkillTypeID is not nu
  269. WARN 2019-12-22 01:28:41.945 {02} <initServer> [0] DB::RS(0 ms) SELECT `Value` FROM `_patch_execute_status` LIMIT 1;
  270. ERRR 2019-12-22 01:28:41.945 {02} <initServer> [0] CmServerInfoManager::_applyDbPatch() - validation of patch file execution failed
  271. ERRR 2019-12-22 01:28:41.945 {02} <initServer> [0] [line #1165] CmServerInfoManager::initLocalWorld() - can't access to db for world id=1
  272. ERRR 2019-12-22 01:28:41.945 {02} <initServer> [0] Fatal: Can't init local world (id=1). Terminating.
  273. quit() -- quit requested!
  274. ECHO 2019-12-22 01:28:41.945 {} <> [0] Engine initialized...
  275. ECHO 2019-12-22 01:28:41.992 {} <> [0] Thread pool initialized, threads: 7
  276. WARN 2019-12-22 01:28:41.992 {} <> [0] Warning - Last tick took 518 (>64) ms!
  277. core/scripts/server/server.cs (0): Unable to find function destroyWorld
  278. INFO 2019-12-22 01:28:41.992 {01} <onExit> [1] The server has been shut down!
  279. ECHO 2019-12-22 01:28:41.992 {} <<Thread>> [] Thread worker terminated [T:WorkerThread6:4240]
  280. ECHO 2019-12-22 01:28:41.992 {} <<Thread>> [] Thread worker terminated [T:WorkerThread4:3216]
  281. ECHO 2019-12-22 01:28:41.992 {} <<Thread>> [] Thread worker terminated [T:WorkerThread2:2076]
  282. ECHO 2019-12-22 01:28:41.992 {} <<Thread>> [] Thread worker terminated [T:WorkerThread0:3408]
  283. ECHO 2019-12-22 01:28:41.992 {} <<Thread>> [] Thread worker terminated [T:WorkerThread1:1312]
  284. ECHO 2019-12-22 01:28:41.992 {} <<Thread>> [] Thread worker terminated [T:WorkerThread3:5732]
  285. ECHO 2019-12-22 01:28:41.992 {} <<Thread>> [] Thread worker terminated [T:WorkerThread5:4672]
  286. ECHO 2019-12-22 01:28:41.992 {} <> [1] Thread pool shut down
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement