समस्या निवारण
अपना लक्षण खोजें, कारण पढ़ें और समाधान लागू करें। हर अनुभाग उस लॉग इवेंट या त्रुटि का नाम बताता है जो आपको दिखनी चाहिए। किसी एरर कोड के अर्थ के लिए त्रुटियाँ देखें।
पहले कदम
- स्टेटस एंडपॉइंट पूछें:
curl -fsS http://127.0.0.1:8080/health/status।{"status":"ready"}का मतलब है कि API अपने डेटाबेस और स्टोरेज तक पहुँच रहा है। - विफल सेवा की नवीनतम लॉग पंक्तियाँ पढ़ें। लॉग और फ़ीडबैक देखें।
startup.failedयाworker.unavailableइवेंट खोजें। इसकाreasonफ़ील्ड कारण बताता है।- अगर कोई क्लाइंट त्रुटि बताए, तो अनुरोध ID माँगें और लॉग में उसे खोजें।
सर्वर शुरू नहीं होता
सेवा प्रबंधक विफल सेवा को हर 10 सेकंड में फिर से शुरू करता है। तब लॉग में startup.failed दोहराता है। reason फ़ील्ड, और errno व sqlstate फ़ील्ड पढ़ें।
पोर्ट व्यस्त है
कारण। startup.failed में errno EADDRINUSE है। कोई दूसरा प्रोग्राम पोर्ट 8080 (ARKVORY_PORT) पर सुन रहा है, या कोई पुरानी Arkvory प्रक्रिया अब भी चल रही है।
समाधान। पोर्ट के स्वामी को खोजें और उसे रोकें, या पोर्ट बदलें।
sudo ss -ltnp 'sport = :8080'Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, OwningProcessपोर्ट बदलने के लिए config/runtime.json में ARKVORY_PORT संपादित करें और सेवाएँ फिर से शुरू करें। इसके साथ कंसोल का पता भी बदल जाता है।
डेटाबेस पहुँच से बाहर है या लॉगिन अस्वीकार करता है
कारण। लॉग इनमें से कोई कारण दिखाता है:
reason | अर्थ |
|---|---|
dependency unavailable, errno ECONNREFUSED या ETIMEDOUT के साथ | PostgreSQL रुका है, कहीं और सुन रहा है, या फ़ायरवॉल उसे अवरुद्ध कर रहा है |
database authentication failed | ARKVORY_DATABASE_URL में उपयोगकर्ता या पासवर्ड गलत है |
database does not exist | URL में नामित डेटाबेस मौजूद नहीं है |
database role lacks a required privilege | भूमिका टेबल बना या बदल नहीं सकती |
समाधान। PostgreSQL शुरू करें, या config/runtime.json में ARKVORY_DATABASE_URL ठीक करें और सेवाएँ फिर से शुरू करें। प्रबंधित डेटाबेस 127.0.0.1 पर ARKVORY_DATABASE_URL में दिए पोर्ट पर सुनता है (Windows पर सेवा Arkvorydatabase, Linux पर arkvory-database)। डेटाबेस के जवाब देने पर सेवाएँ खुद शुरू हो जाती हैं। database/ फ़ोल्डर न हटाएँ। Windows पर लॉग लाइन could not bind IPv4 address "127.0.0.1": Permission denied का अर्थ है कि Windows ने बूट के समय वह पोर्ट आरक्षित कर लिया है (netsh int ipv4 show excludedportrange protocol=tcp आरक्षित श्रेणियाँ दिखाता है)। Setup डेटाबेस पोर्ट को इन श्रेणियों से बाहर रखता है: यह बहिष्करण * के साथ दिखता है, रीस्टार्ट के बाद भी बना रहता है, और न होने पर मरम्मत या अपडेट इसे फिर से जोड़ देता है। किसी पुराने इंस्टॉलेशन को आरक्षित पोर्ट से हटाने के लिए Arkvory सेवाएँ रोकें, database/settings.json के port में और config/runtime.json के ARKVORY_DATABASE_URL में एक ही खाली पोर्ट (उदाहरण के लिए 45329) सेट करें, और Setup फिर से चलाएँ: मरम्मत नए पोर्ट को बाहर रखती है और सेवाएँ शुरू करती है।
डेटाबेस और प्रोग्राम में मतभेद है
कारण। कारण unavailable: से शुरू होता है और कहता है Database migrations 1 through N are required; run migrate, या Database schema is newer than this release, या database schema is missing; run migrations। यह आधे रास्ते रुके अपडेट के बाद होता है, या जब किसी पुराने संस्करण को नए डेटाबेस पर शुरू किया जाता है।
समाधान। नए डेटाबेस पर पुराना संस्करण शुरू न करें। arkvory status --root <root> से स्थिति जाँचें और recover से अपडेट पूरा करें या उसे पूर्ववत करें। अपडेट विफल हुआ देखें। डेटा सुरक्षित रखने के लिए बैकअप से पुनर्स्थापना केवल तब करें जब recover पूरा न हो सके।
दूसरी प्रक्रिया स्टोरेज की स्वामी है
कारण। कारण है busy: Another writer or maintenance process owns this database, या conflict: Database belongs to a different storage directory। दूसरा API उसी डेटाबेस के विरुद्ध चल रहा है, या डेटा डायरेक्टरी वह नहीं है जिसके साथ यह डेटाबेस इस्तेमाल हुआ था। हर स्टोरेज डायरेक्टरी में storage-id फ़ाइल होती है, और डेटाबेस उसे दर्ज करता है।
समाधान। दूसरी प्रक्रिया रोकें। इस डेटाबेस से जुड़ी डेटा डायरेक्टरी इस्तेमाल करें। storage-id को कभी किसी दूसरी डायरेक्टरी में कॉपी न करें, और कभी दो इंस्टॉलेशनों को एक ही डेटाबेस से न जोड़ें।
रूट या डेटा डायरेक्टरी पर अनुमतियाँ
कारण। errno EACCES या EPERM है, या कारण है Cannot read ARKVORY_KEYS_FILE (EACCES)। सेवा खाता कॉन्फ़िगरेशन पढ़ नहीं सकता या डेटा डायरेक्टरी में लिख नहीं सकता। आम कारण हैं उपयोगकर्ता प्रोफ़ाइल में इंस्टॉलेशन, हाथ से कॉपी किया गया फ़ोल्डर, या बदला हुआ स्वामी।
समाधान।
- Linux: रूट और
config/मोड 0750 के साथroot:arkvoryके हैं।config/runtime.jsonऔरconfig/keys.jsonका मोड 0640 है।data/औरlogs/arkvory:arkvoryके हैं। - Windows: खाता
NT AUTHORITY\LocalServiceको रूट के हर पैरेंट फ़ोल्डर को पढ़ना चाहिए, औरdata\,logs\तथा अपडेट इनबॉक्स को बदलना चाहिए। एक्सेस नियम बहाल करने के लिए ग्राफ़िकल इंस्टॉलर फिर से चलाएँ। - होम डायरेक्टरी और उपयोगकर्ता प्रोफ़ाइल के बाहर किसी समर्पित फ़ोल्डर में इंस्टॉल करें।
कोई सेटिंग या प्रमाणपत्र अस्वीकार किया गया
कारण। कारण किसी वेरिएबल का नाम लेता है, उदाहरण के लिए Invalid ARKVORY_PORT, या कोई प्रमाणपत्र समस्या: TLS certificate has expired, TLS certificate and key do not match, TLS key is not an unencrypted PEM private key। प्रमाणपत्र गलत होने पर सर्वर कभी सादे HTTP में शुरू नहीं होता।
समाधान। config/runtime.json में नामित वेरिएबल ठीक करें। अपनी सीमा से बाहर का मान शुरू होना रोक देता है। प्रमाणपत्र फ़ाइलें नवीनीकृत या बदलें। फ़ाइलें ठीक करते समय सादे HTTP पर लौटने के लिए arkvory configure --tls-off इस्तेमाल करें। एनवायरनमेंट वेरिएबल देखें।
कंसोल API तक नहीं पहुँच सकता
| कंसोल में संदेश | कारण | समाधान |
|---|---|---|
| Arkvory से कोई जवाब नहीं मिला। अपना नेटवर्क कनेक्शन जाँचें और फिर से प्रयास करें। | ब्राउज़र को कोई जवाब नहीं मिलता: सेवा डाउन है, पता या पोर्ट गलत है, फ़ायरवॉल उसे अवरुद्ध कर रहा है, सर्वर केवल 127.0.0.1 पर सुन रहा है, या प्रमाणपत्र नाम से मेल नहीं खाता | ब्राउज़र वाले उसी कंप्यूटर से /health/status जाँचें। सेवा, लिसन पता और फ़ायरवॉल जाँचें |
| Arkvory के आगे लगे प्रॉक्सी को उससे कोई जवाब नहीं मिला। थोड़ी देर बाद फिर से प्रयास करें या व्यवस्थापक से संपर्क करें। | रिवर्स प्रॉक्सी जवाब देता है, पर उसके पीछे का API नहीं | जाँचें कि API चल रहा है और प्रॉक्सी उसके पोर्ट की ओर इशारा करता है। बड़े ट्रांसफ़र के लिए प्रॉक्सी की रीड टाइमआउट बढ़ाएँ |
| सर्वर ने जवाब देने में बहुत देर लगाई, इसलिए अनुरोध रोक दिया गया। फिर से प्रयास करें। | सर्वर ने समय पर जवाब नहीं दिया | लॉग में upload.deadline या व्यस्त डेटाबेस खोजें |
| सेवा अस्थायी रूप से उपलब्ध नहीं है। थोड़ी देर बाद फिर से प्रयास करें। | डेटाबेस जैसी कोई निर्भरता कुछ क्षण के लिए दूर है | प्रतीक्षा करें और फिर कोशिश करें। व्यस्त और अनुपलब्ध देखें |
| सर्वर इस कंसोल पते से आने वाले अनुरोधों की अनुमति नहीं देता। व्यवस्थापक से संपर्क करें। | बाहरी कंसोल ऐसे पते पर चल रहा है जो ARKVORY_CORS_ORIGINS में सूचीबद्ध नहीं है | सटीक ओरिजिन (scheme, host और port) जोड़ें और API फिर से शुरू करें |
| आपका सत्र समाप्त हो गया है: आपने कहीं और साइन आउट किया, पासवर्ड बदला या आपका एक्सेस निरस्त कर दिया गया। फिर से साइन इन करें। | आपने कहीं और साइन आउट किया, पासवर्ड बदला गया, या एक्सेस निरस्त कर दिया गया | फिर से साइन इन करें |
अपडेट के दौरान कंसोल खुद फिर से जुड़ जाता है। इंस्टॉलेशन अनुरोध दोबारा न भेजें। अगर Docker Desktop इस्तेमाल हो रहा है, तो Docker Desktop के चलने तक सर्वर दूर रहता है। Docker देखें।
साइन-इन की समस्याएँ
गलत नाम या पासवर्ड
कारण। संदेश उपयोगकर्ता नाम या पासवर्ड गलत है। है (401 invalid_credentials)। गलत नाम, गलत पासवर्ड और अक्षम खाते के लिए सर्वर एक ही जवाब देता है, ताकि कोई पता न लगा सके कि कौन-से नाम मौजूद हैं।
समाधान। व्यवस्थापक उपयोगकर्ता और एक्सेस में खाता जाँच सकता है और अक्षम होने पर सक्षम करें इस्तेमाल कर सकता है, या नया पासवर्ड सेट करने के लिए पासवर्ड रीसेट करें।
बहुत ज़्यादा प्रयास
कारण। जवाब 429 rate_limited है login_attempts और Retry-After के साथ। पते ने अपने 10 प्रयास खर्च कर लिए हैं, या कई गलत पासवर्ड के बाद खाता अपनी प्रतीक्षा में है (अधिकतम 2 मिनट)। इस समय के दौरान सही पासवर्ड भी प्रतीक्षा करता है।
समाधान। Retry-After में दिए सेकंडों तक प्रतीक्षा करें। व्यवस्थापक पासवर्ड रीसेट करके खाते की प्रतीक्षा हटा सकता है। API का रीस्टार्ट पतों के काउंटर साफ़ कर देता है, पर किसी खाते की प्रतीक्षा नहीं।
प्रॉक्सी के पीछे सब अवरुद्ध हैं
कारण। सर्वर प्रॉक्सी के पते को हर क्लाइंट का पता समझता है, इसलिए सभी क्लाइंट एक ही बजट साझा करते हैं।
समाधान। ARKVORY_TRUSTED_PROXIES को प्रॉक्सी के पतों पर सेट करें और API फिर से शुरू करें। प्रॉक्सी को X-Forwarded-For भेजना चाहिए। सुरक्षा देखें।
स्वामी खो गया
कारण। किसी को व्यवस्थापक का पासवर्ड याद नहीं है।
समाधान। सर्वर पर पुनर्प्राप्ति कुंजी इस्तेमाल करें:
- रूट या Administrator के रूप में
config/bootstrap-token.txtसे कुंजी पढ़ें। - कंसोल में सेवा या ऑटोमेशन कुंजी से कनेक्ट करें खोलें, कुंजी पेस्ट करें और कनेक्ट करें चुनें।
- उपयोगकर्ता और एक्सेस खोलें। खाते के लिए पासवर्ड रीसेट करें इस्तेमाल करें, या नया व्यवस्थापक बनाने के लिए उपयोगकर्ता बनाएँ।
- डिस्कनेक्ट करें चुनें और उस खाते से साइन इन करें।
फ़ॉर्म पहला स्वामी बनाएँ केवल तब काम करता है जब सर्वर पर कोई खाता न हो।
पुनर्प्राप्ति कुंजी खो गई
कारण। फ़ाइल config/bootstrap-token.txt हटा दी गई थी या कभी सहेजी नहीं गई। सर्वर के पास केवल कुंजी का हैश होता है।
समाधान। सर्वर पर रूट या Administrator अधिकारों के साथ नई कुंजी और उसका हैश लिखें। कॉन्फ़िगरेशन देखें। फ़ाइल को दोबारा न हटाएँ: इंस्टॉलेशन टूल उसे पढ़ते हैं।
अपलोड
अपलोड पूरा नहीं होता
कारण। कई संभावित कारण हैं:
- क्लाइंट का कनेक्शन टूट गया। मल्टीपार्ट अपलोड अपने दर्ज किए गए भाग 7 दिन तक रखता है।
- बड़ा अपलोड वर्कर की प्रतीक्षा कर रहा है। वर्कर रुका है, या विफल हो गया है। दूसरा वर्कर स्टैंडबाय के रूप में प्रतीक्षा कर रहा है।
- एक साथ बहुत ज़्यादा अपलोड चल रहे हैं। डिफ़ॉल्ट रूप से 2 चलते हैं, प्रति खाता 1, और बाकी 20 सेकंड प्रतीक्षा करके 503
busyपाते हैं। - रिवर्स प्रॉक्सी बड़ा बॉडी अस्वीकार करता है (413) या धीमा अनुरोध रोक देता है (502 या 504)।
समाधान।
- अपलोड की स्थिति पूछें:
arkvoryctl uploads status <id>। उसी फ़ाइल और उसी state फ़ाइल के साथ जारी रखें। कमांड लाइन देखें। - वर्कर जाँचें:
systemctl status arkvory-worker,Get-Service Arkvoryworker।uploadIdके साथcompletion.failedऔरcompletion.attempts_exhaustedखोजें। मीट्रिकarkvory_completion_oldest_queued_secondsप्रतीक्षारत जॉब दिखाता है। - बॉडी आकार और रीड समय के लिए प्रॉक्सी की सीमाएँ बढ़ाएँ। बिना डेटा के 30 सेकंड बाद और कुल मिलाकर 30 मिनट बाद अपलोड अनुरोध रुक जाता है।
- 7 दिन से पुराना सत्र चला गया है (409
upload_expired)। नया अपलोड शुरू करें।
integrity_mismatch
कारण। जवाब 422 integrity_mismatch है, या क्लाइंट कोड 5 के साथ एग्ज़िट करता है। बाइट घोषित आकार या SHA-256 से मेल नहीं खाते। भेजे जाते समय फ़ाइल बदल गई, घोषित हैश किसी दूसरी फ़ाइल के लिए गणना किया गया था, या किसी प्रॉक्सी या नेटवर्क डिवाइस ने बॉडी बदल दी।
समाधान। फ़ाइल को अपरिवर्तित प्रति से फिर से भेजें। सत्र खुला रहता है, इसलिए सही की गई फ़ाइल उसमें भेजी जा सकती है। अगर कोई डाउनलोड बार-बार अपनी जाँच में विफल हो, तो उसे किसी दूसरे पथ से एक बार और डाउनलोड करें, फिर अनुरोध ID बताएँ। लॉग और फ़ीडबैक देखें।
व्यस्त, रेट सीमित, अनुपलब्ध
कोड busy, unavailable और rate_limited अस्थायी हैं। जवाब में हेडर Retry-After और फ़ील्ड retryAfterSeconds होता है। उतनी देर प्रतीक्षा करें। busy के लिए सर्वर यह समय आगे की कतार और जगहें कितनी तेज़ी से खाली होती हैं, इससे निकालता है, इसलिए लंबी कतार क्लाइंट को ज़्यादा देर के लिए लौटा देती है। SDK और कमांड-लाइन क्लाइंट busy और rate_limited पर उतनी देर प्रतीक्षा करते हैं जितनी सर्वर कहता है (इसकी सीमा --wait-limit या waitLimitMs से तय करें) और बाकी जवाबों को सीमित संख्या में दोहराते हैं।
| जवाब | कारण | क्या करें |
|---|---|---|
503 busy, कारण request_limit | सर्वर एक साथ ARKVORY_MAX_REQUESTS अनुरोध सँभालता है (डिफ़ॉल्ट रूप से 128) | प्रतीक्षा करें। सीमा केवल पर्याप्त मेमोरी होने पर बढ़ाएँ। arkvory_http_requests_in_flight जाँचें |
503 busy, कारण download_queued | बड़े ऑब्जेक्ट का डाउनलोड कतार में प्रतीक्षा कर रहा है; Arkvory-Queue-Position और Arkvory-Starts-At स्थान और अपेक्षित शुरुआत बताते हैं | कुछ नहीं: SDK और arkvoryctl प्रतीक्षा करके जारी रखते हैं। अन्य क्लाइंट Retry-After के बाद उसी कुंजी से उसी पते से दोहराएँ |
503 busy | ट्रांसफ़र कतार भरी है, कोई ट्रांसफ़र ARKVORY_TRANSFER_QUEUE_TIMEOUT_MS (20 सेकंड) से ज़्यादा प्रतीक्षा कर चुका है, या सर्वर रुकने से पहले ड्रेन कर रहा है | प्रतीक्षा करें और दोहराएँ। बार-बार हो तो ARKVORY_MAX_UPLOADS या ARKVORY_MAX_DOWNLOADS बढ़ाएँ। arkvory_transfer_admission_failures_total इनकारों की गिनती करता है |
503 unavailable | डेटाबेस फिर से शुरू हो रहा है, प्रक्रिया ने अपना स्टोरेज स्वामित्व खो दिया, या हब पहुँच से बाहर है (hub_unreachable) | प्रतीक्षा करें। सेवाएँ खुद फिर से शुरू हो जाती हैं। स्वतः पुनर्प्राप्ति देखें |
429 rate_limited | बहुत ज़्यादा साइन-इन, पंजीकरण, पासवर्ड या फ़ीडबैक प्रयास | प्रतीक्षा करें। बहुत ज़्यादा प्रयास देखें |
500 internal में Retry-After नहीं होता। इसे अंधाधुंध दोहराएँ नहीं। लॉग में उसका अनुरोध ID खोजें और उसे बताएँ।
डिस्क भरी और कोटा
| जवाब, कारण | कारण | समाधान |
|---|---|---|
507 storage_full | स्टोरेज वॉल्यूम की मुक्त जगह रिज़र्व ARKVORY_STORAGE_RESERVE_BYTES (डिफ़ॉल्ट रूप से 1 GiB) से कम है, या डेटाबेस की डिस्क भरी है | वॉल्यूम पर जगह खाली करें। df -h या Get-PSDrive, और PostgreSQL का वॉल्यूम जाँचें |
507 storage_quota | रिपॉज़िटरी कोटा खर्च हो गया है | पुराने बिल्ड हटाएँ, प्रतिधारण नीति बदलें, या स्टोरेज और क्लीनअप में कोटा बढ़ाएँ |
507 catalog_limit | सभी आरक्षित सामग्री का योग ARKVORY_CAPACITY_BYTES (डिफ़ॉल्ट रूप से 10 TiB) को पार कर जाएगा | सामग्री हटाएँ, या config/runtime.json में मान बढ़ाएँ |
507 queue_full | किसी खाते के पास 100 खुले पूर्णता जॉब हैं, या सर्वर के पास 10,000 | वर्कर के उन्हें पूरा करने की प्रतीक्षा करें |
डिस्क भरी होने पर भी डाउनलोड और कंसोल काम करते रहते हैं। /health/ready में "writable": false दिखता है। Arkvory में कोई आर्टिफ़ैक्ट हटाने से डिस्क तुरंत खाली नहीं होती: फ़ाइल अपनी छूट अवधि के बाद भौतिक क्लीनअप की प्रतीक्षा करती है। स्टोरेज देखें। ज़्यादा डेटा ठूँसने के लिए रिज़र्व कम न करें, क्योंकि डेटाबेस और लॉग को इसकी ज़रूरत होती है।
बैकअप विफल होते हैं
बैकअप में चेतावनी या arkvoryctl backup status से शुरुआत करें, और errorCode के साथ लॉग इवेंट backup.request.failed तथा backup.agent.failed देखें। बैकअप देखें।
| चेतावनी या संदेश | कारण | समाधान |
|---|---|---|
agent_offline | बैकअप सेवा रुकी है, या शुरू नहीं हो पाती | arkvory-backup या Arkvorybackup शुरू करें। उसका लॉग पढ़ें |
vault_unavailable | vault वॉल्यूम माउंट नहीं है, उसमें vault.json नहीं है, या सेवा खाता उसमें लिख नहीं सकता | सेवा शुरू होने से पहले वॉल्यूम माउंट करें। स्वामी और अनुमतियाँ जाँचें। Windows पर वॉल्यूम बाद में माउंट हुआ हो तो एजेंट फिर से शुरू करें |
The vault directory does not exist; create it or mount its volume first | पथ गलत है या वॉल्यूम गायब है | डायरेक्टरी बनाएँ या माउंट करें |
The vault directory is not writable | सेवा खाते के पास लिखने की पहुँच नहीं है | Linux पर उपयोगकर्ता arkvory के uid और gid के साथ शेयर माउंट करें। Windows पर स्थानीय या iSCSI वॉल्यूम इस्तेमाल करें |
The directory has no vault.json: mount the vault volume, or create the vault first ... | डायरेक्टरी में कोई vault नहीं है (अनमाउंटेड शेयर भी ऐसा ही दिखता है); configure खुद एन्क्रिप्टेड vault नहीं बनाता | सही वॉल्यूम माउंट करें, या arkvory-backup vault init <dir> --kit-file <file> --agent-key-file <file> चलाएँ, kit को सर्वर से बाहर रखें, फिर --vault-key-file दें। --init-vault --vault-no-encryption बिना एन्क्रिप्शन का vault बनाता है |
The vault must be outside the installation root and the storage directory | vault डेटा से अलग नहीं है | किसी दूसरे वॉल्यूम पर अलग डायरेक्टरी चुनें |
Network share paths are not supported ... | Windows पर UNC पथ। LocalService SMB शेयर में साइन इन नहीं कर सकता | स्थानीय या iSCSI वॉल्यूम के ड्राइव अक्षर का इस्तेमाल करें |
The backup service cannot reach /home, /root, /run/user, /tmp or /var/tmp | systemd सैंडबॉक्स इन फ़ोल्डरों को छिपा देता है | दूसरी डायरेक्टरी चुनें |
vault_full, vault_low_space | vault वॉल्यूम लगभग भरा है | जगह खाली करें या कम बिंदु रखें। पुराने बिंदु बने रहते हैं |
vault_key_missing, vault_key_invalid | vault एन्क्रिप्टेड है और एजेंट के पास कुंजी नहीं है, या ग़लत है | एजेंट की कुंजी के साथ arkvory configure --backup-vault DIR --vault-key-file FILE चलाएँ। देखें vault एन्क्रिप्ट करें |
last_run_failed | नवीनतम बैकअप विफल हुआ | arkvoryctl backup jobs से errorCode पढ़ें |
verify_failed | कोई बिंदु अपनी जाँच में विफल हुआ | vault न बदलें। इसे विश्लेषण के लिए रखें और इसकी सूचना दें |
जब एजेंट 150 सेकंड के भीतर नया vault नहीं बताता, तो arkvory configure --backup-vault पुरानी सेटिंग बहाल कर देता है। अपडेट बैकअप एजेंट रोक देता है, इसलिए उस समय चल रहा बैकअप बाद में दोहराया जाता है। जब स्वतः अपडेट चालू हों, तो बैकअप का समय अपडेट के घंटे (डिफ़ॉल्ट रूप से 03:00 UTC) से बाहर रखें।
मिरर सिंक्रनाइज़ नहीं होता
कंसोल में मिरर खोलें: रुका हुआ मिरर कारण, अगला कदम और, जब हो, उसे ठीक करने वाला कमांड दिखाता है। यही स्थिति GET /api/v1/repositories/{repository}/mirror और वर्कर इवेंट mirror.step_failed में भी है। कॉपी हुई सामग्री से डाउनलोड काम करते रहते हैं। मिरर देखें।
errorCode | कारण | समाधान |
|---|---|---|
mirror_unreachable | स्रोत उत्तर नहीं देता: कनेक्शन अस्वीकार हुआ, समय सीमा समाप्त हुई या नाम रिज़ॉल्व नहीं होता | नेटवर्क, फ़ायरवॉल और स्रोत जाँचें। वर्कर खुद फिर से कोशिश करता है |
unauthorized या forbidden | स्रोत कुंजी अस्वीकार करता है, या कुंजी को रिपॉज़िटरी पढ़ने की अनुमति नहीं है | कुंजी को arkvory configure --mirror NAME --mirror-token-file FILE से बदलें, या स्रोत पर उसे पढ़ने की अनुमति दें। हर विफलता के बाद वर्कर कुंजी फिर से पढ़ता है |
mirror_failed | अधिक विशिष्ट कोड के बिना एक विफलता | वर्कर लॉग पढ़ें |
mirror_mismatch | उसी ID की सामग्री स्रोत पर दूसरी है | कॉपी रखी जाती है। आर्टिफ़ैक्ट की जाँच करें |
mirror_source_changed | रिपॉज़िटरी के पास पहले से किसी दूसरे स्रोत की कॉपी है | --mirror-detach से अलग करें, और नए स्रोत को नई रिपॉज़िटरी में मिरर करें |
mirror_source_behind | स्रोत पुनर्स्थापित या फिर से इंस्टॉल किया गया था | यह खुद फिर से सीड करता है और कोड गायब हो जाता है |
mirror_certificate | स्रोत कंपनी या स्व-हस्ताक्षरित प्रमाणपत्र इस्तेमाल करता है, या उसका प्रमाणपत्र समाप्त हो गया है या उसके नाम से मेल नहीं खाता | arkvory configure को --mirror-ca-file दें। जाँच कभी बंद नहीं की जाती |
अन्य कोड और उनके बारे में क्या करें: मिरर, त्रुटि कोड। स्रोत को मिरर फ़ीड वाली रिलीज़ चाहिए। विफलता के बाद वर्कर 2 सेकंड प्रतीक्षा करता है, जो 5 मिनट तक दोगुना होता जाता है। बिना कैच-अप के सवा घंटे बाद ArkvoryMirrorStale चलता है।
अपडेट विफल हुआ
- विफलता पढ़ें। कंसोल में अपडेट संदेश दिखाता है। अपडेटर Windows पर
logs\updater.logलिखता है, और Linux परjournalctl -u arkvory-update। - इंस्टॉल किया गया संस्करण जाँचें:
arkvory status --root <root>। - अपना मामला खोजें।
| मामला | क्या हुआ | क्या करें |
|---|---|---|
| वही डेटाबेस स्कीमा, सामान्य विफलता | इंस्टॉलर ने पिछला संस्करण फिर से शुरू किया | कारण ठीक करें और फिर से अपडेट करें |
| कंसोल इंस्टॉलेशन अस्वीकार किया गया: डेटाबेस स्कीमा बदलने वाली रिलीज़ के लिए ताज़ा और सत्यापित बैकअप आवश्यक है। बैकअप स्टोरेज कनेक्ट करें और पहला बैकअप पूरा होने दें, फिर दोबारा जाँचें, या सर्वर पर मैन्युअल रूप से अपग्रेड करें। दिखाता है | स्कीमा बदलाव वाली रिलीज़ को सत्यापित बैकअप चाहिए, और इंस्टॉलर ने किसी भी बदलाव से पहले मना कर दिया | कोई vault जोड़ें, पहले बैकअप की प्रतीक्षा करें, फिर जाँचें |
| माइग्रेशन विफल हुआ | उसका ट्रांज़ैक्शन रोलबैक हो गया, और पिछला संस्करण पिछले स्कीमा पर चलता है | कारण ठीक करें और फिर से अपडेट करें |
| अच्छे माइग्रेशन के बाद नया संस्करण शुरू नहीं हुआ | जर्नल maintenance-required कहता है और किसी बैकअप बिंदु का नाम लेता है | कारण ठीक करें और recover चलाएँ, जो अपडेट पूरा करता है। या पिछले संस्करण के साथ उस बिंदु को पुनर्स्थापित करें |
| अपडेटर मार दिया गया या मशीन की बिजली चली गई | लॉक operation.lock और जर्नल बने रहते हैं। कुछ भी खुद आगे नहीं बढ़ता | नीचे दी गई प्रक्रिया |
| कंसोल होस्ट अपडेटर ने रिपोर्ट करना बंद कर दिया है। सर्वर पर शेड्यूलर और इंस्टॉलेशन लॉक जाँचें। या होस्ट अपडेटर कनेक्ट नहीं है। सर्वर व्यवस्थापक से कहें कि वह updates-connect से इसे कनेक्ट करे। दिखाता है | होस्ट शेड्यूलर चल नहीं रहा या जुड़ा नहीं है | कार्य ProAnimaArkvoryUpdate (Windows) या arkvory-update.timer (Linux) जाँचें। इसे arkvory updates-connect --root <root> से जोड़ें |
रुके हुए अपडेटर के बाद:
शेड्यूलर रोकें और सुनिश्चित करें कि कोई अपडेटर न चल रहा हो।
journal.jsonऔर लॉग सहेजें।उसके बाद ही इंस्टॉलेशन रूट में
operation.lockफ़ाइल हटाएँ। अपडेट चलते समय इसे कभी न हटाएँ।recoverचलाएँ:bashsudo arkvory recover --root /opt/proanima-arkvorypowershell& 'C:\Program Files\ProAnima\Arkvory\arkvory.ps1' recover --root C:\ProgramData\ProAnima\Arkvoryमाइग्रेशन शुरू होने से पहले यह पिछला संस्करण बहाल करता है। माइग्रेशन शुरू होने के बाद यह माइग्रेशन दोहराता है और नया संस्करण शुरू करता है।
/health/ready, पूर्णता कतार और एक परीक्षण डाउनलोड जाँचें। फिर शेड्यूलर दोबारा चालू करें।
arkvory updates-reset --root <root> स्थिति का मिलान करने के बाद स्वीकृत अपडेट अनुरोध साफ़ कर देता है। डाउनग्रेड संभव नहीं है। अपडेट देखें।
Docker
- Windows के रीस्टार्ट के बाद कुछ नहीं चलता। Docker Desktop उपयोगकर्ता के साइन इन करने पर शुरू होता है। Start Docker Desktop when you sign in चालू करें, या नेटिव सेवाएँ इस्तेमाल करें।
- Linux होस्ट के रीस्टार्ट के बाद कुछ नहीं चलता। जाँचें कि इंजन बूट पर शुरू होता है:
systemctl is-enabled docker। - कंटेनर
config/में कोई फ़ाइल नहीं पढ़ सकता। कंटेनर उपयोगकर्ताnode(uid 1000) के रूप में चलते हैं। इंस्टॉलरruntime.json,keys.jsonऔरhealth-token.txtको उनके लिए पढ़ने योग्य बनाता है। अगर किसी हाथ के संपादन ने स्वामी या मोड 0600 कर दिया, तो APICannot read ARKVORY_KEYS_FILE (EACCES)के साथ रुक जाता है। इन तीन फ़ाइलों का मोड 0644 बहाल करें।config/फ़ोल्डर खुद बंद रहता है। - vault लिखने योग्य नहीं है। एजेंट uid 1000 के रूप में चलता है, इसलिए vault उसका होना चाहिए।
arkvory configure --backup-vaultइसेconfig/compose.vault.ymlफ़ाइल से सेट करता है। जिस शेयर को आप खुद माउंट करते हैं उसेuid=1000चाहिए। हर मैनुअल Compose कमांड में-f config/compose.vault.ymlशामिल करें, वरनाupबिना vault के बैकअप कंटेनर बना देगा। - कोई कंटेनर
unhealthyहै। हेल्थ चेक हर 10 सेकंड में/health/readyकॉल करता है। Docker कंटेनर को चिह्नित करता है पर उसे फिर से शुरू नहीं करता। API कंटेनर का लॉग पढ़ें।
कंटेनर का लॉग दिखाएँ:
docker logs --tail 100 proanima-arkvory-api-1Windows सेवा शुरू नहीं होती
स्थिति और एरर आउटपुट पढ़ें:
powershellGet-Service Arkvoryapi, Arkvoryworker, Arkvorybackup, Arkvorydatabase Get-Content C:\ProgramData\ProAnima\Arkvory\logs\arkvory-api.err.log -Tail 50Windows Event Viewer खोलें, Windows Logs > System, और Service Control Manager के इवेंट खोजें।
अपना कारण खोजें:
| कारण | समाधान |
|---|---|
रूट किसी उपयोगकर्ता प्रोफ़ाइल के अंदर है, या LocalService कोई पैरेंट फ़ोल्डर नहीं पढ़ सकता | समर्पित फ़ोल्डर में इंस्टॉल करें। अनुमतियाँ देखें |
| पोर्ट व्यस्त है | पोर्ट व्यस्त है देखें |
| डेटाबेस सेवा नहीं चल रही | Arkvorydatabase शुरू करें। API हर 10 सेकंड में रीट्राई करता है |
| बूट के बाद सेवाएँ "देर से" शुरू हुईं | उनका स्टार्ट प्रकार Automatic (Delayed Start) है। कुछ मिनट प्रतीक्षा करें |
| एंटीवायरस सॉफ़्टवेयर ने Node.js को क्वारंटीन कर दिया | runtime\ में फ़ाइलों को अनुमति दें |
Another installation owns this service | किसी दूसरे रूट में इंस्टॉलेशन की सेवाएँ मौजूद हैं। पहले उन्हें हटाएँ |
| कोई सेवा रुकी रहती है | आपने या किसी अपडेट ने उसे रोका। उसे Start-Service से शुरू करें |
सेवाओं के स्टार्ट प्रकार और रिकवरी क्रियाएँ बहाल करने के लिए ग्राफ़िकल इंस्टॉलर फिर से चलाएँ। Windows देखें।
लॉग, अनुरोध ID और फ़ीडबैक
लॉग खोजें। Linux: journalctl -u arkvory-api -u arkvory-worker -u arkvory-backup। Windows: इंस्टॉलेशन रूट में logs\। Compose: docker logs <container>। प्रारूप और इवेंट मॉनिटरिंग में हैं।
अनुरोध ID खोजें। हर उत्तर में हेडर X-Request-Id होता है। हर एरर बॉडी में requestId होता है। कंसोल इसे संदेश के नीचे अनुरोध ID के रूप में दिखाता है, और कमांड-लाइन क्लाइंट इसे एरर पंक्ति में छापता है। इस मान के लिए API और वर्कर के लॉग खोजें ताकि अनुरोध और उससे शुरू हुए जॉब दिखें।
लॉग के साथ फ़ीडबैक भेजें।
- साइन इन करें और ऊपरी पट्टी में फ़ीडबैक चुनें।
- समस्या बताएँ और अनुरोध ID जोड़ें। आप अधिकतम 6 स्क्रीनशॉट जोड़ सकते हैं।
- अगर आप व्यवस्थापक हैं, तो सर्वर लॉग और सिस्टम सारांश चालू करें। यह API की नवीनतम लॉग पंक्तियाँ (लगभग 1.5 MiB) और बिना पतों व सीक्रेट के सिस्टम का सारांश संलग्न करता है।
- यह देखने के लिए संलग्न सामग्री दिखाएँ चुनें कि ठीक क्या भेजा जाएगा, फिर भेजें।
सर्वर रिपोर्ट को ProAnimaStudio हब पर भेजता है। अगर हब तक न पहुँचा जा सके या फ़ीडबैक बंद हो, तो कंसोल लिखने के लिए पता info@proanima.net दिखाता है। क्या भेजा जाता है, यह सुरक्षा में देखें।