ಪ್ರಕಟಿಸಿದ ತಕ್ಷಣ ಕ್ರ್ಯಾಶ್ ಆಗುವ ಆ್ಯಪ್ಗಳನ್ನು ಹಿಡಿಯುವುದು
ಸೆಪ್ಟೆಂಬರ್ 25 ರಂದು, ಮೂರು ಪ್ರಕಟಣೆಗಳನ್ನು ಯಶಸ್ವಿ ಎಂದು ಗುರುತಿಸಲಾಯಿತು, ಆದರೂ ಆ್ಯಪ್ನ API ಪ್ರತಿ ಬೂಟ್ನಲ್ಲಿ ಕೆಲವೇ ಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತಿತ್ತು. ಅವು "ಯಶಸ್ವಿ" ಆದ್ದರಿಂದ ರೋಲ್ಬ್ಯಾಕ್ ನಡೆಯಲಿಲ್ಲ; ಕೆಲವು ನಿಮಿಷಗಳ ನಂತರ ಹಿನ್ನೆಲೆ ಪರಿಶೀಲನೆ ಅವುಗಳನ್ನು ವಿಫಲಗೊಳಿಸಿತು, ಮತ್ತು ಇಡೀ ಸೈಟ್ 404 ಗೆ ಹೋಯಿತು. ಆರೋಗ್ಯ ಪರಿಶೀಲನೆ ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ಹೋಸ್ಟಿಂಗ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ನ ಈವೆಂಟ್ ಪಟ್ಟಿಯಲ್ಲಿ ಎಣಿಸುತ್ತಿತ್ತು — ಅದು ಪ್ರತಿ ಯಂತ್ರಕ್ಕೆ ಕೊನೆಯ ಐದು ಈವೆಂಟ್ಗಳನ್ನು ಮಾತ್ರ ಇಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಕ್ರ್ಯಾಶ್ ಲೂಪ್ ಪಟ್ಟಿಯನ್ನು ತುಂಬಿಡುತ್ತದೆ ಮತ್ತು ಎಣಿಕೆ ಎಂದಿಗೂ ಹೆಚ್ಚುವುದಿಲ್ಲ. ಈಗ ಅದು ಇತ್ತೀಚಿನ ಕ್ರ್ಯಾಶ್ನ ಸಮಯವನ್ನು ಹೋಲಿಸುತ್ತದೆ, ಮತ್ತು ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತಿರುವ ಪ್ರಕಟಣೆ ವಿಫಲಗೊಂಡು ಹಿಂದಿನ ಆವೃತ್ತಿಯನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ.
ಒಂದು ಪ್ರಕಟಣೆ ಏನನ್ನು ಕಾಯುತ್ತದೆ
ನೀವು Mythex ನಲ್ಲಿ ಬ್ಯಾಕೆಂಡ್ ಇರುವ ಆ್ಯಪ್ ಪ್ರಕಟಿಸಿದಾಗ, ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ನಮ್ಮ ಹೋಸ್ಟಿಂಗ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ನ ಯಂತ್ರಗಳ ಮೇಲೆ ಹರಡಲಾಗುತ್ತದೆ, ಮತ್ತು ಒಂದು ಆರೋಗ್ಯ ಪರಿಶೀಲನೆ ಪ್ರಕಟಣೆ ಲೈವ್ ಆಯಿತೋ ವಿಫಲವಾಯಿತೋ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ವಿಫಲವಾದರೆ, ರೋಲ್ಬ್ಯಾಕ್ ಹಿಂದಿನ ಆವೃತ್ತಿಯನ್ನು ಮರಳಿ ಇಡುತ್ತದೆ.
ಕಷ್ಟದ ವಿಷಯ ಏನೆಂದರೆ "ಆರಂಭವಾಗಿದೆ" ಎಂದರೆ "ಸೇವೆ ನೀಡುತ್ತಿದೆ" ಎಂದಲ್ಲ. ಯಂತ್ರ ಮೇಲಿದ್ದ ತಕ್ಷಣ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಅದನ್ನು ಆರಂಭವಾಗಿದೆ ಎಂದು ವರದಿ ಮಾಡುತ್ತದೆ. ಬೂಟ್ ಆದ ಒಂದು ಸೆಕೆಂಡ್ನಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ಆಗುವ ಆ್ಯಪ್ ತಕ್ಷಣ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಮತ್ತು ಒಂದು ಕ್ಷಣದ ನಂತರ ಮತ್ತೆ ಆರಂಭವಾಗಿದೆ ಎಂದು ಕಾಣುತ್ತದೆ. ಆದ್ದರಿಂದ ಆರೋಗ್ಯ ಪರಿಶೀಲನೆ ಕಾಲಕ್ರಮೇಣ ಕೆಲವು ಪದರಗಳನ್ನು ಬೆಳೆಸಿಕೊಂಡಿತ್ತು:
- ಎರಡು ಬಾರಿ ನೋಡಿ. ಯಂತ್ರ ಆರಂಭವಾಗಿದೆ ಎಂದಾದ ನಂತರ, ಸ್ವಲ್ಪ ಕಾದು ಮತ್ತೆ ನೋಡಿ. ಬೂಟ್ ಆದಾಗಿನ ಕ್ರ್ಯಾಶ್ ಆಗಾಗ ಎರಡನೇ ನೋಟದಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ.
- ಕ್ರ್ಯಾಶ್ ಲೂಪ್ಗಳನ್ನು ಗಮನಿಸಿ. ಯಂತ್ರ ಪದೇ ಪದೇ ಕ್ರ್ಯಾಶ್ ಆಗಿ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಮರುಪ್ರಾರಂಭಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದೆ ಎಂದು ವರದಿ ಮಾಡಿದರೆ, ವಿಫಲಗೊಳಿಸಿ.
- ಪ್ರಕಟಣೆ ಆರಂಭವಾದಾಗಿನಿಂದ ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ಎಣಿಸಿ. ಎರಡು "ಆರಂಭವಾಗಿದೆ" ನೋಟಗಳ ನಡುವೆ ಮರುಪ್ರಾರಂಭ ನಡೆದಿರಬಹುದು. ಆದ್ದರಿಂದ ಪ್ರಕಟಣೆ ಆರಂಭವಾದಾಗಿನಿಂದ ಯಾವುದೇ ಕ್ರ್ಯಾಶ್ ಸಂಭವಿಸಿದ್ದರೆ, ಮೂರನೇ ಬಾರಿ ನೋಡಿ; ಹಿಂದಿನ ನೋಟಕ್ಕಿಂತ ಹೆಚ್ಚು ಕ್ರ್ಯಾಶ್ಗಳಿದ್ದರೆ, ಆ್ಯಪ್ ಸ್ಥಿರವಾಗಿ ಉಳಿಯುತ್ತಿಲ್ಲ.
ಇಲ್ಲಿ ವಿಫಲವಾದದ್ದು ಮೂರನೇ ಪರಿಶೀಲನೆ.
ಎಣಿಕೆ ಏಕೆ ಸ್ಥಿರವಾಗಿತ್ತು
ಕ್ರ್ಯಾಶ್ ಮಾಹಿತಿ ಪ್ರತಿ ಯಂತ್ರದ ಈವೆಂಟ್ ಪಟ್ಟಿಯಿಂದ ಬರುತ್ತದೆ: ಆರಂಭಗಳು, ನಿರ್ಗಮನಗಳು, ಮರುಪ್ರಾರಂಭಗಳು. ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಪ್ರತಿ ಯಂತ್ರಕ್ಕೆ ಕೊನೆಯ ಐದು ಈವೆಂಟ್ಗಳನ್ನು ಮಾತ್ರ ಇಡುತ್ತದೆ.
ಸೆಕೆಂಡ್ಗಳ ಕಾಲ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತಿದ್ದ ಆ್ಯಪ್ ಅನ್ನು ಊಹಿಸಿ — ಅದರಲ್ಲಿ ಒಂದು ಹೀಗೆ ಮಾಡುತ್ತಿತ್ತು. ಪ್ರತಿ ಚಕ್ರ ಒಂದು ಕ್ರ್ಯಾಶ್ ಮತ್ತು ಒಂದು ಆರಂಭವನ್ನು ಸೇರಿಸುತ್ತದೆ. ಕೆಲವು ಚಕ್ರಗಳ ನಂತರ ಪಟ್ಟಿ ತುಂಬುತ್ತದೆ. ಅಲ್ಲಿಂದ ಮುಂದೆ, ಪ್ರತಿ ಹೊಸ ಈವೆಂಟ್ ಹಳೆಯದೊಂದನ್ನು ಹೊರಗೆ ತಳ್ಳುತ್ತದೆ. ಪಟ್ಟಿ ಮುಂದೆ ಸರಿಯುತ್ತದೆ, ಆದರೆ ಅದು ಯಾವಾಗಲೂ ಸುಮಾರು ಒಂದೇ ಮಿಶ್ರಣವನ್ನು ಹೊಂದಿರುತ್ತದೆ: ಕೆಲವು ಕ್ರ್ಯಾಶ್ಗಳು, ಕೆಲವು ಆರಂಭಗಳು.
ಆದ್ದರಿಂದ "ಪ್ರಕಟಣೆ ಆರಂಭವಾದಾಗಿನಿಂದ ಎಷ್ಟು ಕ್ರ್ಯಾಶ್ಗಳು" ಎಂಬ ಪ್ರಶ್ನೆಗೆ ಪ್ರತಿ ನೋಟದಲ್ಲೂ ಒಂದೇ ಸಂಖ್ಯೆ ಬರುತ್ತಿತ್ತು. ಎರಡನೇ ನೋಟ ಬಹುಶಃ ಎರಡು ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ಕಂಡಿತು. ಮೂರನೇ ನೋಟವೂ ಎರಡನ್ನೇ ಕಂಡಿತು — ಬೇರೆ ಕ್ರ್ಯಾಶ್ಗಳಾದರೂ, ಎಣಿಕೆ ಒಂದೇ. ಪರಿಶೀಲನೆ ಕ್ರ್ಯಾಶ್ ನಿಂತಿದೆ ಎಂದು ತೀರ್ಮಾನಿಸಿ, ಪ್ರಕಟಣೆಯನ್ನು ಪಾಸ್ ಮಾಡಿತು.
ಸೆಪ್ಟೆಂಬರ್ 25 ರಂದು ಇದು ಮೂರು ಬಾರಿ ಸಂಭವಿಸಿತು, ಎರಡು ಆ್ಯಪ್ಗಳಲ್ಲಿ. ಪ್ರತಿ ಬಾರಿಯೂ:
- ಪ್ರಕಟಣೆ ಲೈವ್ ಎಂದು ಗುರುತಿಸಲಾಯಿತು,
- ಏನೂ ವಿಫಲವಾಗದ ಕಾರಣ ರೋಲ್ಬ್ಯಾಕ್ ನಡೆಯಲಿಲ್ಲ,
- ನಮ್ಮ ರಿಕನ್ಸಿಲರ್ — ಪ್ರಕಟಣೆಯ ನಂತರ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಹಿನ್ನೆಲೆ ಜಾಬ್ — ಕೆಲವು ನಿಮಿಷಗಳ ನಂತರ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಅನ್ನು ವಿಫಲಗೊಳಿಸಿತು,
- ಮತ್ತು ಇಡೀ ಸೈಟ್ 404 ಗೆ ಹಿಂತಿರುಗಿತು.
ಸಮಯಕ್ಕೆ ಸರಿಯಾಗಿ ವಿಫಲವಾದ ಪ್ರಕಟಣೆ ಚೇತರಿಸಿಕೊಳ್ಳಬಹುದು: ರೋಲ್ಬ್ಯಾಕ್ ಹಿಂದಿನ ಆವೃತ್ತಿಯನ್ನು ಮರಳಿ ತರುತ್ತದೆ. ಯಶಸ್ವಿ ಎಂದು ಘೋಷಿಸಿದ ನಂತರ ಕೆಲವು ನಿಮಿಷ ತಡವಾಗಿ ವಿಫಲವಾಗುವ ಪ್ರಕಟಣೆ, ತನ್ನ ರೋಲ್ಬ್ಯಾಕ್ ಅನ್ನು ಈಗಾಗಲೇ ಬಿಟ್ಟುಬಿಟ್ಟಿರುತ್ತದೆ.
ನಾವು ಅದನ್ನು ಹೇಗೆ ಕಂಡುಹಿಡಿದೆವು
ಸ್ಥಳೀಯವಾಗಿ ಮರುಉತ್ಪಾದಿಸಿದೆವು: ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದ ಒಂದು API ತೆಗೆದುಕೊಂಡು, ಅದನ್ನು ನಿದ್ರೆಗೆ ಹಾಕಿ, ನಂತರ ಬೂಟ್ನಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ಆಗುವ ಬದಲಾವಣೆಯೊಂದಿಗೆ ಮರುಪ್ರಕಟಿಸಿದೆವು. ಆರೋಗ್ಯ ಪರಿಶೀಲನೆ ಅದನ್ನು ಲೈವ್ ಎಂದು ಗುರುತಿಸಿತು.
ಇದು ಉತ್ಪಾದನೆಗೆ ಹೊಂದಿತ್ತು: ಮೂರೂ ಪ್ರಕಟಣೆಗಳಲ್ಲಿ, ಆ್ಯಪ್ ಪ್ರತಿ ಬೂಟ್ನಲ್ಲಿ ಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಸಾಯುತ್ತಿತ್ತು, ಆದರೂ ಪರಿಶೀಲನೆ ಹೋಲಿಸಿದ ಕ್ರ್ಯಾಶ್ ಎಣಿಕೆ ನೋಟಗಳ ನಡುವೆ ಎಂದಿಗೂ ಹೆಚ್ಚಲಿಲ್ಲ.
ಪರಿಹಾರ: ಎಣಿಕೆಯಲ್ಲ, ಇತ್ತೀಚಿನ ಕ್ರ್ಯಾಶ್ ಹೋಲಿಸಿ
ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ಎಣಿಸುವ ಬದಲು, ಪರಿಶೀಲನೆ ಈಗ ಪ್ರಕಟಣೆ ಆರಂಭವಾದಾಗಿನಿಂದ ಇತ್ತೀಚಿನ ಕ್ರ್ಯಾಶ್ನ ಸಮಯ ವನ್ನು ನೋಡುತ್ತದೆ.
ಎರಡನೇ ನೋಟದಲ್ಲಿ ಪ್ರಕಟಣೆ ಆರಂಭವಾದಾಗಿನಿಂದ ಯಾವುದೇ ಕ್ರ್ಯಾಶ್ ಕಂಡರೆ, ಪರಿಶೀಲನೆ ಕಾದು ಮೂರನೇ ಬಾರಿ ನೋಡುತ್ತದೆ. ಮೂರನೇ ನೋಟದಲ್ಲಿ ಇತ್ತೀಚಿನ ಕ್ರ್ಯಾಶ್ ಎರಡನೇ ನೋಟದ ಇತ್ತೀಚಿನ ಕ್ರ್ಯಾಶ್ಗಿಂತ ನಂತರ ಇದ್ದರೆ, ಇನ್ನೂ ಒಂದು ಬಾರಿ ಯಂತ್ರ ಕ್ರ್ಯಾಶ್ ಆಗಿದೆ ಎಂದರ್ಥ. ಅದು ಸ್ಥಿರವಾಗಿಲ್ಲ, ಮತ್ತು ಪ್ರಕಟಣೆ "ಯಂತ್ರ ಪ್ರಕಟಣೆಯ ನಂತರ ಪದೇ ಪದೇ ಕ್ರ್ಯಾಶ್ ಆಗಿದೆ ಮತ್ತು ಇನ್ನೂ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತಿದೆ" ಎಂಬ ಸಂದೇಶದೊಂದಿಗೆ ವಿಫಲವಾಗುತ್ತದೆ.
ಈವೆಂಟ್ ಪಟ್ಟಿ ಎಷ್ಟೇ ಚಿಕ್ಕದಾಗಿದ್ದರೂ ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಐದು ಈವೆಂಟ್ಗಳ ಸ್ಲೈಡಿಂಗ್ ವಿಂಡೋ ಎಷ್ಟು ಕ್ರ್ಯಾಶ್ಗಳಿದ್ದವು ಎಂಬುದನ್ನು ಮರೆಮಾಡಬಹುದು, ಆದರೆ ಹೊಸ ಕ್ರ್ಯಾಶ್ ಈಗಷ್ಟೇ ಸಂಭವಿಸಿತು ಎಂಬುದನ್ನು ಮರೆಮಾಡಲಾರದು — ಇತ್ತೀಚಿನ ಈವೆಂಟ್ ಯಾವಾಗಲೂ ಉಳಿಸಲ್ಪಡುತ್ತದೆ.
ಈ ಬದಲಾವಣೆಯೊಂದಿಗೆ, ಸ್ಥಳೀಯ ಮರುಉತ್ಪಾದನೆ ಸರಿಯಾಗಿ ವರ್ತಿಸುತ್ತದೆ: ಪ್ರಕಟಣೆ ವಿಫಲವಾಗುತ್ತದೆ, ಮತ್ತು ಹಿಂದಿನ ಇಮೇಜ್ ಮರುಸ್ಥಾಪಿಸಲ್ಪಡುತ್ತದೆ. ಪ್ಲಾಟ್ಫಾರ್ಮ್ನ ವರ್ತನೆಯನ್ನು ಅನುಕರಿಸುವ ಪರೀಕ್ಷೆಯೂ ಇದೆ — ಪ್ರತಿ ನೋಟ ಒಂದು ಕ್ರ್ಯಾಶ್ ಮತ್ತು ಒಂದು ಆರಂಭವನ್ನು ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ಪಟ್ಟಿಯನ್ನು ಐದಕ್ಕೆ ಕತ್ತರಿಸುತ್ತದೆ — ಮತ್ತು ತೀರ್ಮಾನ ಪಾಸ್ ಅಲ್ಲ, ವಿಫಲತೆ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ.
ನಾವು ಇದರಿಂದ ಕಲಿತದ್ದು
- ನೀವು ಎಣಿಸುತ್ತಿರುವ ದತ್ತಾಂಶದ ಆಕಾರ ತಿಳಿದಿರಲಿ. ಸೀಮಿತ ಪಟ್ಟಿಯ ಮೇಲಿನ ಎಣಿಕೆ ಪಟ್ಟಿ ತುಂಬಿದ ನಂತರ ಅರ್ಥ ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ. ಆ ಮಿತಿ ಮರೆಯಾಗಿರಲಿಲ್ಲ; ನಾವು ಪರಿಶೀಲನೆಯನ್ನು ಅದರ ಸುತ್ತ ವಿನ್ಯಾಸಗೊಳಿಸಿರಲಿಲ್ಲ ಅಷ್ಟೆ.
- "ಎಷ್ಟು ಸಂಭವಿಸಿತು?" ಬದಲು "ಹೊಸದೇನಾದರೂ ಸಂಭವಿಸಿತೇ?" ಎಂದು ಕೇಳಿ. ಇತ್ತೀಚಿನ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಕತ್ತರಿಸುವಿಕೆಯಿಂದ ಉಳಿಯುತ್ತದೆ; ಒಟ್ಟು ಮೊತ್ತ ಉಳಿಯುವುದಿಲ್ಲ.
- ತಡವಾದ ವೈಫಲ್ಯ ಮೊದಲೇ ಆಗುವ ವೈಫಲ್ಯಕ್ಕಿಂತ ಕೆಟ್ಟದು. ಅದೇ ಮುರಿದ ಬಿಲ್ಡ್ ಪ್ರಕಟಣೆ ವಿಫಲವಾಗಿ ರೋಲ್ಬ್ಯಾಕ್ ಆದರೆ ಹಾನಿಯಿಲ್ಲ; ಮೊದಲು ಯಶಸ್ವಿ ಎಂದು ಘೋಷಿಸಿದರೆ ಸೈಟ್ ಅನ್ನೇ ಕೆಳಗಿಳಿಸುತ್ತದೆ.
- ನಿಜವಾದ ಪರಿಸ್ಥಿತಿಗಳೊಂದಿಗೆ ಮರುಉತ್ಪಾದಿಸಿ. ದೋಷಕ್ಕೆ ಈವೆಂಟ್ ಪಟ್ಟಿಯನ್ನು ತುಂಬುವಷ್ಟು ಬಾರಿ ಈಗಾಗಲೇ ಕ್ರ್ಯಾಶ್ ಆದ ಯಂತ್ರ ಬೇಕಿತ್ತು. ಪರೀಕ್ಷೆಯಲ್ಲಿ ಒಂದೇ ತ್ವರಿತ ಕ್ರ್ಯಾಶ್ ಇದನ್ನು ತೋರಿಸುತ್ತಿರಲಿಲ್ಲ.
ಈ ಪರಿಹಾರ ಅದೇ ದಿನದ ಇನ್ನೊಂದು ಪರಿಹಾರದೊಂದಿಗೆ ಹೊಂದುತ್ತದೆ, ಇದು ರೋಲ್ಬ್ಯಾಕ್ ಹಳೆಯ ಆವೃತ್ತಿಯನ್ನು ಅಳಿಸದೆ ಮರಳಿ ತರುವುದನ್ನು ಖಚಿತಪಡಿಸಿತು: ವಿಫಲ ಮರುಪ್ರಕಟಣೆ ಎಂದಿಗೂ ಕೆಲಸ ಮಾಡುವ ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಅಳಿಸುವುದಿಲ್ಲ. ನಿಮ್ಮ ಸ್ವಂತ ಆ್ಯಪ್ ಬೂಟ್ ಆಗುವಾಗ ಕ್ರ್ಯಾಶ್ ಆಗುವ ಕಾರಣ ಪ್ರಕಟಣೆ ವಿಫಲವಾದರೆ, ಪ್ರಕಟಣೆ ದೋಷನಿವಾರಣೆ ದಸ್ತಾವೇಜು ಮತ್ತು AI ನಿರ್ಮಿತ ಆ್ಯಪ್ ಅನ್ನು ಡೀಬಗ್ ಮಾಡುವುದು ಮಾರ್ಗದರ್ಶಿ ಉತ್ತಮ ಆರಂಭ ಬಿಂದುಗಳು.