Kernel Oops при покретању VPN-а: докази које вреди сачувати
Пад при покретању VPN-а захтева одговарајућу верзију кернела и први траг, а не снимак екрана последњег реда. Одлучите шта да сачувате пре него што поново рестартујете.
Покретање VPN клијента је згодна временска ознака, а не узрок, и та разлика одлучује шта се даље дешава. Када се kernel Oops појави близу тог тренутка, избор је између прикупљања употребљивог извештаја о квару и изазивања истог пада још пет пута на продукцијском рачунару. Сачувајте четири ствари пре рестарта: тачну верзију кернела, први траг квара, стање taint и кратак опис свега осталог што се променило у истом минуту. Остало је тумачење, а тумачење може да чека док докази нису на сигурном.
Ухватите први квар, а не задњи ред
Први Oops у запису је онај који је важан, јер сваки каснији квар може бити колатерална штета од кернела који више није здрав. Копирајте заглавље заједно с трагом позива, јер заглавље носи инструкцију која је изазвала квар и стање регистара које идентификује путању кода. Извештај који почиње од задњег реда вреди врло мало ономе ко га прочита недељу дана касније.
Ако се рачунар већ рестартовао, кернелска меморија претходног подизања често је још у дневнику, под условом да је тада била омогућена трајна меморија. Читајте је из сачуване датотеке уместо да поново стварате радно оптерећење, јер друга репродукција може преписати оно што вам треба. Тамо где рачунар не може да чува дневник између рестарта, серијска конзола или netconsole једини је начин да квар икада постане видљив.
Фиксирајте верзију пре него што прочитате било који симбол
Имена функција и помераји имају смисла само према бинарном фајлу који их је произвео, зато запишите верзију кернела и идентификатор верзије дистрибуције заједно. Датотека симбола из друге верзије показује на погрешан ред са потпуном сигурношћу, што је горе него да немате никакав симбол. Чувајте верзију пакета кернела, не само upstream број, јер дистрибуције много тога преносе назад.
Модули изван стабла заслужују свој ред у запису, јер означени кернел ограничава шта одржавалац сме да закључи. Читајте вредност taint уместо да је изводите из листе модула.
Taint различит од нуле није оптужба и не чини извештај безвредним. Он говори читаоцу који су компоненти били учитани када се квар догодио, а неке заставице доводе до тога да извештај буде смањеног приоритета по политици, а не по процени. Запишите вредност, имена модула и да ли су исти хардвер и радно оптерећење икада радили кернел без њих. Управо то последње поређење раздваја нову регресију од вишегодишње грешке.
Раздвојите окидач од дефекта
Покретање тунела обично активира путању која је већ постојала: мрежни драјвер, дисциплину реда чекања, функцију offloadа или стање напајања. Окидач објашњава када се квар појављује, а не који је код погрешан, а третирање окидача као узрока води низу промена конфигурације које ништа не поправљају.
Ранија слика која ради јесте доказ, али не и доказивање. При поређењу мењајте по једну компоненту по подизању и чувајте резултате негде где надживе рачунар.
Проверите шта одржавалац заиста може да искористи
Прочитајте извештај као што би га прочитао странац пре него што га пошаљете. Ако су конфигурација, тачан след и идентитет верзије присутни, а акредитиви уклоњени, извештај је употребљив. Ако је то снимак екрана стека, вратиће се са захтевом за исте информације. Водич за тражење грешака кернела описује како изгледају користан траг и одговарајући симболи.
uname -r
cat /proc/sys/kernel/tainted
journalctl -k -b -1 --no-pager | sed -n '/BUG:/,/Call Trace/p'
dmesg -T | grep -A 40 'RIP:'
Свака команда изнад само чита стање, а прве две треба покренути пре следећег рестарта ако рачунар још може да одговори на њих. Тамо где дневник није трајан, само ће те две икада поново радити.
Уклоните кључеве, лозинке и неповезани саобраћај, али задржите имена функција и помераје који су некоме потребни да прочита траг. Пошаљите материјал путем пријавног пута који се односи на дистрибуцију или кернел, а не јавним лепљењем с приложеним именом хоста. Затим чекајте питање уместо да скупљате још падова, јер лоциран квар према одговарајућој верзији једини је резултат који помера извештај напред. Ако се ништа не врати, резерва је контролисана репродукција на резервном хардверу, никада на рачунару о коме зависе други људи.