Cardano-db-sync: μž„μ˜μ˜ "insertABlockμ—μ„œ DB 쑰회 μ‹€νŒ¨" 였λ₯˜

에 λ§Œλ“  2020λ…„ 09μ›” 28일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: input-output-hk/cardano-db-sync

에 @erikd의 μš”μ²­μ— 따라 이 λ‹€λ₯Έ 문제 λ‚΄κ°€ μ΅œκ·Όμ—μ΄ λ§žμ•˜ λ•Œλ¬Έμ—, λ‚˜λŠ” μƒˆλ‘œμš΄ 문제둜 μž¬κ°œν•˜κ³ μžˆμ–΄ 5.0.1 곡식에 νŒ¨ν‚€μ§€ 버전 hub.docker.com 이미지 ( inputoutput/cardano-db-sync:5.0.1 [0]).
이 둜그 [1][2]의 좩돌 이후 λ¬Έμ œκ°€ λ‹€μ‹œ λ‚˜νƒ€λ‚˜μ§€ μ•Šμ•˜λ‹€κ³  말해야 ν•©λ‹ˆλ‹€.

postgresql μ—°κ²° 문제둜 인해 λ°œμƒν•  수 μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ μ–΄μ¨Œλ“  IMHOλŠ” μ΅œμ•…μ˜ 경우 κΈ°λ³Έ ν”„λ‘œμ„ΈμŠ€κ°€ exit >0 (db μŠ€λ ˆλ“œ μ’…λ£Œμ—μ„œ μžλ™μœΌλ‘œ λ³΅κ΅¬λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—) λ˜λŠ” db μ΄λŸ¬ν•œ μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ μŠ€λ ˆλ“œλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•©λ‹ˆλ‹€.

[0] inputoutput/cardano-db-sync<strong i="15">@sha256</strong>:b09f440d868749135e74c0bfe6154f210d5836bc2d24a44e484c7dbb4b837689
[1]

[db-sync-node:Info:3354] [2020-09-26 04:29:44.87 UTC] insertByronBlock: slot 3025000, block 3023467, hash 43b510c9fa0d1021d4efbfb0a07c1e90f40258c05d7d66b266aee4fb9963f678
[db-sync-node:Error:3354] [2020-09-26 04:29:59.56 UTC] DB lookup fail in insertABlock: block hash f8452c44591e3db7d5534ceaaff56922609d81deed45b953e7220601bfd4ec87
[db-sync-node:Info:3354] [2020-09-26 04:29:59.56 UTC] Shutting down DB thread
[db-sync-node:Error:3357] [2020-09-26 04:29:59.56 UTC] recvMsgRollForward: AsyncCancelled
...
FROZEN FOREVER
...

[2]

Generating PGPASS file
Connecting to network: mainnet
[db-sync-node:Info:4] [2020-09-26 09:01:38.91 UTC] NetworkMagic: 764824073
[db-sync-node:Info:4] [2020-09-26 09:02:11.59 UTC] Initial genesis distribution present and correct
[db-sync-node:Info:4] [2020-09-26 09:02:11.59 UTC] Total genesis supply of Ada: 31112484745.000000
[db-sync-node:Info:4] [2020-09-26 09:02:11.69 UTC] Inserting Shelley Genesis distribution
[db-sync-node:Info:4] [2020-09-26 09:02:11.83 UTC] epochPluginOnStartup: Checking
[db-sync-node:Info:4] [2020-09-26 09:02:11.86 UTC] localInitiatorNetworkApplication: connecting to node via "/node-ipc/node.socket"
[db-sync-node.Handshake:Info:30] [2020-09-26 09:02:11.86 UTC] [String "Send MsgProposeVersions (fromList [(NodeToClientV_1,TInt 764824073),(NodeToClientV_2,TInt 764824073),(NodeToClientV_3,TInt 764824073)])",String "LocalHandshakeTrace",String "ConnectionId {localAddress = LocalAddress {getFilePath = \"\"}, remoteAddress = LocalAddress {getFilePath = \"/ipc/node.socket\"}}"]
[db-sync-node.Handshake:Info:30] [2020-09-26 09:02:11.87 UTC] [String "Recv MsgAcceptVersion NodeToClientV_3 (TInt 764824073)",String "LocalHandshakeTrace",String "ConnectionId {localAddress = LocalAddress {getFilePath = \"\"}, remoteAddress = LocalAddress {getFilePath = \"/ipc/node.socket\"}}"]
[db-sync-node:Info:34] [2020-09-26 09:02:11.87 UTC] Starting chainSyncClient
[db-sync-node:Info:34] [2020-09-26 09:02:13.97 UTC] Cardano.Db tip is at slot 3025325, block 3023792
[db-sync-node:Info:39] [2020-09-26 09:02:13.97 UTC] Running DB thread
[db-sync-node:Info:39] [2020-09-26 09:02:14.45 UTC] Rolling back to slot 3025325, hash f8452c44591e3db7d5534ceaaff56922609d81deed45b953e7220601bfd4ec87
[db-sync-node:Info:39] [2020-09-26 09:02:14.46 UTC] Deleting blocks numbered: []
[db-sync-node:Info:42] [2020-09-26 09:02:14.58 UTC] getHistoryInterpreter: acquired
[db-sync-node:Error:39] [2020-09-26 09:02:42.88 UTC] DB lookup fail in insertABlock: block hash ff6d511e65fb979ac511e8658c20cfe608bdfe7d3e6172f49115e52487812423
[db-sync-node:Info:39] [2020-09-26 09:02:42.88 UTC] Shutting down DB thread
[db-sync-node:Error:42] [2020-09-26 09:02:42.89 UTC] recvMsgRollForward: AsyncCancelled
...
FROZEN FOREVER
...

λͺ¨λ“  6 λŒ“κΈ€

λ‚˜λŠ” λ³΄μ•˜λ‹€

DB lookup fail in insertABlock: block hash

μ΄μ „μ—λŠ” ν•˜λ‚˜λŠ” λ””μŠ€ν¬ 곡간이 λΆ€μ‘±ν•œ postgres λ•Œλ¬Έμ΄μ—ˆκ³  λ‹€λ₯Έ ν•˜λ‚˜λŠ” ν…ŒμŠ€νŠΈ 쀑에 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 잠재적으둜 μ•ˆμ „ν•˜μ§€ μ•Šμ€ μ‘°μž‘μ„ ν•œ ν›„μ˜€μŠ΅λ‹ˆλ‹€.

FROZEN FOREVER 뢀뢄은 μ œκ°€ 직접 μ œμ–΄ν•  수 μžˆλŠ” 뢀뢄이 μ•„λ‹™λ‹ˆλ‹€. λ‚΄ μ½”λ“œλŠ” ChainSync ν”„λ‘œν† μ½œμ„ μˆ˜ν–‰ν•˜λŠ” λ„€νŠΈμ›Œν‚Ή μ½”λ“œλ₯Ό ν˜ΈμΆœν•œ λ‹€μŒ λ‚΄ μ½”λ“œμ˜ λ‹€λ₯Έ λΉ„νŠΈλ₯Ό λ‹€μ‹œ ν˜ΈμΆœν•©λ‹ˆλ‹€. 이 경우 λ‚΄ λ‚΄λΆ€ μ½”λ“œμ—μ„œ μ˜ˆμ™Έκ°€ λ°œμƒν–ˆλŠ”λ° 이 μ˜ˆμ™ΈλŠ” λ„€νŠΈμ›Œν¬ μ½”λ“œμ— ν¬μ°©λ˜μ–΄ λ‚΄ μ½”λ“œλ‘œ λ‹€μ‹œ μ „νŒŒλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•œ μˆ˜μ • 사항이 μžˆμ„ 수 μžˆμ§€λ§Œ κ°„λ‹¨ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ μ œμ•ˆμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • 머신에 μΆ©λΆ„ν•œ λ””μŠ€ν¬ 곡간이 μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€(epoch 220에 μ™„μ „νžˆ 동기화됨, λ‚΄ db-sync μΈμŠ€ν„΄μŠ€κ°€ 6G λ””μŠ€ν¬λ₯Ό μ‚¬μš© μ€‘μž„).
  • λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚­μ œν•˜κ³  λ‹€μ‹œ λ§Œλ“­λ‹ˆλ‹€(κΈ°μ‘΄ 손상이 μ œκ±°λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄).
  • 동기화λ₯Ό μˆ˜λ™μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•©λ‹ˆλ‹€(μ΅œλŒ€ μ•½ 3μ‹œκ°„).

μ£„μ†‘ν•©λ‹ˆλ‹€. μ²¨λΆ€λœ λ‘œκ·Έμ—μ„œ κ·Έ μ΄ν›„λ‘œ 더 이상 그런 일이 λ°œμƒν•˜μ§€ μ•Šμ•˜μŒμ„ μ–ΈκΈ‰ν•˜λŠ” 것을 μžŠμ—ˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ λ‚΄ postgres μΈμŠ€ν„΄μŠ€μ— μ˜ˆμ™Έμ μΈ λ¬Έμ œκ°€ μžˆμ„ 수 μžˆλ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€(κ·Έ λ‹Ήμ‹œ IIRCμ—μ„œ HAλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€).

더 μœ μš©ν•œ λ‹¨μ„œκ°€ μžˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ μž μ‹œ λ™μ•ˆ 이 정보λ₯Ό μ—΄μ–΄λ‘˜ 수 μžˆμŠ΅λ‹ˆλ‹€.

JFTR, μ €λŠ” 메인넷을 μ²˜μŒλΆ€ν„° λ‹€μ‹œ λ™κΈ°ν™”ν•˜κ³  있으며 κ½€ 였랜 μ‹œκ°„μ΄ μ§€λ‚œ 후에(μ΅œμ†Œν•œ μ΅œμ‹  λ²„μ „μ—μ„œλŠ”) μ‹€μ œλ‘œ 볡ꡬ되며 cardano-node μ†ŒμΌ“μ„ μ‚¬μš©ν•  수 μ—†κΈ° λ•Œλ¬Έμ— λ°œμƒν•  수 μžˆμŒμ„ λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€[0].
이 ν›„μžμ˜ λ¬Έμ œλŠ” λ‚΄κ°€ TCPλ₯Ό 톡해 μ†ŒμΌ“μ„ κ³΅μœ ν•˜κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ k8s ν¬λ“œ(곡유 ipc μ—†μŒ)μ—μ„œ μ‹€ν–‰λ˜λŠ” λ‹€λ₯Έ μ„œλΉ„μŠ€μ— μ•‘μ„ΈμŠ€ν•  수 있고 μ•½κ°„μ˜ λΆˆμ•ˆμ •μ„±μ„ μ–»μŠ΅λ‹ˆλ‹€(아직 μ •ν™•νžˆ μ–΄λ””μ„œ μ˜€λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŒ, 더 λ§Žμ€ TCP νŠœλ‹μ„ μˆ˜ν–‰ν•΄μ•Ό 함) .

[0]

[db-sync-node:Info:217] [2020-10-20 08:09:02.03 UTC] epochPluginInsertBlock: epoch 182
[db-sync-node:Info:217] [2020-10-20 08:11:01.01 UTC] insertByronBlock: slot 3955000, block 3952915, hash d5941f934cf5eb5c3105b584c07aa6c872272dbd0d4fbe78efb36682ed59f211
[db-sync-node:Info:217] [2020-10-20 08:15:22.01 UTC] insertByronBlock: slot 3960000, block 3957915, hash 92494b54140f9db989618f93f11be579b1112d66c173d09cdfb5ac8f9ae6d9ce
[db-sync-node:Error:217] [2020-10-20 08:15:54.86 UTC] DB lookup fail in insertABlock: block hash 55f53f6ddf3546aa29079945eb995244c4a5a205bb287ca76c89a85e2f60ef6d
[db-sync-node:Info:217] [2020-10-20 08:15:54.86 UTC] Shutting down DB thread
[db-sync-node:Error:220] [2020-10-20 08:15:54.86 UTC] recvMsgRollForward: AsyncCancelled
[db-sync-node:Error:211] [2020-10-20 08:34:04.83 UTC] ChainSyncWithBlocksPtcl: AsyncCancelled
[db-sync-node.Subscription:Error:207] [2020-10-20 08:34:04.83 UTC] [String "Application Exception: LocalAddress {getFilePath = \"/node-ipc/node.socket\"} MuxError MuxBearerClosed \"<socket: 12> closed when reading data, waiting on next header True\"",String "SubscriptionTrace"]
[db-sync-node.ErrorPolicy:Warning:4] [2020-10-20 08:34:04.83 UTC] [String "ErrorPolicySuspendPeer (Just (ApplicationExceptionTrace (MuxError MuxBearerClosed \"<socket: 12> closed when reading data, waiting on next header True\"))) 20s 20s",String "ErrorPolicyTrace",String "LocalAddress {getFilePath = \"/node-ipc/node.socket\"}"]
[db-sync-node.Handshake:Info:1879] [2020-10-20 08:34:05.83 UTC] [String "Send MsgProposeVersions (fromList [(NodeToClientV_1,TInt 764824073),(NodeToClientV_2,TInt 764824073),(NodeToClientV_3,TInt 764824073)])",String "LocalHandshakeTrace",String "ConnectionId {localAddress = LocalAddress {getFilePath = \"\"}, remoteAddress = LocalAddress {getFilePath = \"/ipc/node.socket\"}}"]
[db-sync-node.Handshake:Info:1879] [2020-10-20 08:34:05.85 UTC] [String "Recv MsgAcceptVersion NodeToClientV_3 (TInt 764824073)",String "LocalHandshakeTrace",String "ConnectionId {localAddress = LocalAddress {getFilePath = \"\"}, remoteAddress = LocalAddress {getFilePath = \"/ipc/node.socket\"}}"]
[db-sync-node:Info:1883] [2020-10-20 08:34:05.85 UTC] Starting chainSyncClient
[db-sync-node:Info:1883] [2020-10-20 08:34:07.63 UTC] Cardano.Db tip is at slot 3960564, block 3958479
[db-sync-node:Info:1889] [2020-10-20 08:34:07.63 UTC] Running DB thread
[db-sync-node:Info:1889] [2020-10-20 08:34:08.16 UTC] Rolling back to slot 3960564, hash 55f53f6ddf3546aa29079945eb995244c4a5a205bb287ca76c89a85e2f60ef6d
[db-sync-node:Info:1889] [2020-10-20 08:34:08.17 UTC] Deleting blocks numbered: []
[db-sync-node:Info:1889] [2020-10-20 08:37:42.51 UTC] insertByronBlock: slot 3965000, block 3962915, hash c1fa47cd48391aa3774e61c8830b5d1e8bbf62c4720b856a952fdd6d95dcd5e6
[db-sync-node:Info:1889] [2020-10-20 08:41:59.70 UTC] insertByronBlock: slot 3970000, block 3967915, hash 71dcc988afa8fbf6e2f5c88b165f7ee7dbbe8a1a07141df8a5f2c42986494528
[db-sync-node:Info:1889] [2020-10-20 08:46:19.05 UTC] epochPluginInsertBlock: epoch 183
[db-sync-node:Info:1889] [2020-10-20 08:46:43.59 UTC] insertByronBlock: slot 3975000, block 3972915, hash 9be00c8a13eeaa21b24b070fe9254c6b30c3e1953e8625604c86e8c8d5695213
[db-sync-node:Info:1889] [2020-10-20 08:51:42.20 UTC] insertByronBlock: slot 3980000, block 3977915, hash ec3903b66e2a7638315e9d4b9a19ed904b71eae3e5e4cdd412a9b8ed5875b970
[db-sync-node:Info:1889] [2020-10-20 08:57:17.01 UTC] insertByronBlock: slot 3985000, block 3982915, hash 527077e870a8fa8648fb035107c906cc72e3ea2438a674020dc472ec9e2b8d50
[db-sync-node:Info:1889] [2020-10-20 09:01:33.12 UTC] insertByronBlock: slot 3990000, block 3987915, hash 2d6ed2788d5a694d05866d5c08002e46b9e119cab71c2e56d5b76432f37b8eda
[db-sync-node:Info:1889] [2020-10-20 09:05:17.18 UTC] insertByronBlock: slot 3995000, block 3992915, hash e043d137b267ed16b73b41cb92889b37cad381c53c80390598b547dc9fc58892
[db-sync-node:Info:1889] [2020-10-20 09:06:00.19 UTC] epochPluginInsertBlock: epoch 184
[db-sync-node:Info:1889] [2020-10-20 09:09:43.66 UTC] insertByronBlock: slot 4000000, block 3997915, hash a1f93a150ed43de21591124248b27ba0c830bed8c8e81c9a17d7823b5a6cfc97
[db-sync-node:Info:1889] [2020-10-20 09:14:39.01 UTC] insertByronBlock: slot 4005000, block 4002914, hash 3ad70e79c62b3f0cafac5a6bcce66702cac04ea16b7487ceb4627cd61eb9ca42

그것은 μ•„λ§ˆλ„ 일뢀 cardano-node μ†ŒμΌ“μ„ μ‚¬μš©ν•  수 μ—†κΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€.

κ·Έ μžμ²΄λ‘œλŠ” DB 쑰회 μ‹€νŒ¨λ₯Ό μΌμœΌν‚€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ μ†ŒμΌ“μ΄ μ‚¬λΌμ‘Œμ„ λ•Œ db-sync κ°€ DB 쑰회λ₯Ό μˆ˜ν–‰ μ€‘μ΄μ—ˆλ‹€λ©΄ κ²°κ³Ό μ˜ˆμ™Έλ‘œ 인해 DB μ‘°νšŒκ°€ 쑰기에 μ’…λ£Œλ˜μ–΄ 쑰회 μ‹€νŒ¨λ‘œ 보고될 수 μžˆμŠ΅λ‹ˆλ‹€.

μ†ŒμΌ“μ΄ λ°˜ν™˜λ˜λ©΄ 블둝 ν•΄μ‹œ 55f53f6d...2f60ef6d (이전에 μ‘°νšŒμ— μ‹€νŒ¨ν•œ ν•΄μ‹œ)둜 둀백되고 μ΄λ²ˆμ—λŠ” μ‘°νšŒκ°€ μ„±κ³΅ν–ˆκ±°λ‚˜ 체인 동기화가 λ°”λ‘œ κ±°κΈ°μ„œ μ£½μ—ˆμ„ κ²ƒμž…λ‹ˆλ‹€.

이것을 μ—΄μ–΄λ‘˜ κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆκΉŒ? λ¬Έμ œλŠ” 거의 λͺ¨λ“  κ²½μš°μ— μž¬ν˜„ν•  수 μ—†λŠ” 문제λ₯Ό ν•΄κ²°ν•  수 μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰