LINUX.ORG.RU

Помогите, пожалуйста, разобраться с Oops'ом

 ,


0

1

Ситуация такая: на удалённой локации есть одноплатный компьютер с линуксом, он общается с периферией используя, в том числе, свои ноги GPIO через /sys/class/gpio. В чудесный день 31 декабря от него перестают приходить данные. Захожу по ssh, смотрю что происходит. Внешние признаки, что в моём демоне окучивающем периферию не отрабатывают вызовы poll() на изменение состояния ножек GPIO. Пытаюсь завершить демон, он многониточный. Основная нитка сообщает в syslog, что сигнал выхода получен. Однако процесс не завершается. Пытаюсь сделать shutdown -r now. Терминал отстреливается, но на пинг хост продолжает отвечать. Проходит минут 15, ничего не меняется. Системную консоль я не вижу, к сожалению. ssh более не доступен. Поскольку у меня предусмотрена такая независимая опция, то делаю ему полный перезапуск по питанию. Линукс грузится, демон тоже, всё начинает отвечать как надо. Только в kern.log обнаружился следующий кусок совпадающий по времени с моментом отвала периферии:

Dec 31 03:32:56 localhost kernel: [1451587.555994] Internal error: Oops - undefined instruction: 0 [#1] SMP THUMB2
Dec 31 03:32:56 localhost kernel: [1451587.563171] Modules linked in: gpio_pcf857x at24 sun4i_gpadc_iio sun4i_codec snd_soc_core evdev snd_pcm_dmaengine sun4i_ts snd_pcm snd_timer snd ir_lirc_codec soundcore lirc_dev sun4i_gpadc nvmem_sunxi_sid sunxi_cir pl2303 usbserial lz4hc lz4hc_compress sun4i_ss spidev w1_therm w1_gpio wire uio_pdrv_genirq uio zram bonding brcmfmac brcmutil cfg80211 rfkill ip_tables x_tables realtek
Dec 31 03:32:56 localhost kernel: [1451587.587167] CPU: 0 PID: 31217 Comm: kworker/0:2 Not tainted 4.14.78-sunxi #412
Dec 31 03:32:56 localhost kernel: [1451587.595433] Hardware name: Allwinner sun7i (A20) Family
Dec 31 03:32:56 localhost kernel: [1451587.603742] Workqueue: events dbs_work_handler
Dec 31 03:32:56 localhost kernel: [1451587.612027] task: edba8d00 task.stack: c9c28000
Dec 31 03:32:56 localhost kernel: [1451587.620349] PC is at policy_get_link+0x6/0x15c
Dec 31 03:32:56 localhost kernel: [1451587.628681] LR is at arch_timer_read_counter_long+0x15/0x18
Dec 31 03:32:56 localhost kernel: [1451587.637010] pc : [<c050952a>]    lr : [<c010cdc1>]    psr: 800e0093
Dec 31 03:32:56 localhost kernel: [1451587.645374] sp : c9c29da8  ip : 00000030  fp : a1005600
Dec 31 03:32:56 localhost kernel: [1451587.653698] r10: 00000002  r9 : 00000000  r8 : ef031300
Dec 31 03:32:56 localhost kernel: [1451587.661954] r7 : 600e0013  r6 : 76c70b72  r5 : 00037d8e  r4 : c0e48708
Dec 31 03:32:56 localhost kernel: [1451587.670238] r3 : c0509528  r2 : a1005410  r1 : 00001faf  r0 : c0df61d4
Dec 31 03:32:56 localhost kernel: [1451587.678552] Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
Dec 31 03:32:56 localhost kernel: [1451587.686977] Control: 50c5387d  Table: 6daac06a  DAC: 00000051
Dec 31 03:32:56 localhost kernel: [1451587.695454] Process kworker/0:2 (pid: 31217, stack limit = 0xc9c28210)
Dec 31 03:32:56 localhost kernel: [1451587.704042] Stack: (0xc9c29da8 to 0xc9c2a000)
Dec 31 03:32:56 localhost kernel: [1451587.712594] 9da0:                   c010cdad c086a4d5 a1005410 c0d03f48 00000393 c05ca18b
Dec 31 03:32:56 localhost kernel: [1451587.721279] 9dc0: 00000000 39387000 016e3600 00011400 00000000 1f64a08a 39387000 ef003580
Dec 31 03:32:56 localhost kernel: [1451587.730009] 9de0: 00000000 016e3600 39387000 ffffe000 ee7cca00 ef003380 c0d03f70 c05c5f65
Dec 31 03:32:56 localhost kernel: [1451587.738737] 9e00: 00000001 1f78a400 c0de4948 ef038b00 ef003580 ef038b00 39387000 00000000
Dec 31 03:32:56 localhost kernel: [1451587.747455] 9e20: ef003580 ef6c0050 ee7cca00 1f78a400 ee7cc900 c05c63d3 edba8d00 ee7ccdc0
Dec 31 03:32:56 localhost kernel: [1451587.756183] 9e40: 39387000 c0d03f48 ee7ccac0 c05c6417 39387000 ee70ea00 00000000 c063bbbd
Dec 31 03:32:56 localhost kernel: [1451587.764913] 9e60: ef3ec8e8 ef3ec8e4 ee7ccae8 39387000 00000000 39387000 1f78a400 1f64a08a
Dec 31 03:32:56 localhost kernel: [1451587.773691] 9e80: ef1fb238 c0d03f48 ef3ec800 00000000 c0e41624 00000006 00000000 000ea600
Dec 31 03:32:56 localhost kernel: [1451587.782577] 9ea0: 00000000 c07329ab c0d03f48 00000008 00080e80 000ea600 00000021 1f64a08a
Dec 31 03:32:56 localhost kernel: [1451587.791519] 9ec0: 00000003 ee69e880 ef3ec800 ee7ccd80 ee69e880 ee69e180 ee7ccd80 ef6c8dc0
Dec 31 03:32:56 localhost kernel: [1451587.800495] 9ee0: edb2781c c0735a27 c073594d ee69e8b8 00000000 ee69e884 ef3ec800 c0dc96d0
Dec 31 03:32:56 localhost kernel: [1451587.809467] 9f00: 00000000 c0736245 ee69e8b8 ed9e9d00 ef6c8dc0 ef6cbd00 00000000 c012d505
Dec 31 03:32:56 localhost kernel: [1451587.818481] 9f20: ef6c8dc0 ef6c8dc0 c9c29f40 ef6c8dd8 ed9e9d00 ef6c8dc0 ed9e9d18 c0d02d00
Dec 31 03:32:56 localhost kernel: [1451587.827508] 9f40: ef6c8dd8 ffffe000 ef6c8dc0 c012e0a7 00000000 c0dddcbf c0a5c2b0 00000000
Dec 31 03:32:56 localhost kernel: [1451587.836570] 9f60: c9c29f78 edb27800 edb27e00 00000000 c9c28000 ed9e9d00 c012dfa9 ed9efe9c
Dec 31 03:32:56 localhost kernel: [1451587.845681] 9f80: edb2781c c0131b6d ffffffff edb27e00 c0131a71 00000000 00000000 00000000
Dec 31 03:32:56 localhost kernel: [1451587.854827] 9fa0: 00000000 00000000 00000000 c01065f9 00000000 00000000 00000000 00000000
Dec 31 03:32:56 localhost kernel: [1451587.864000] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Dec 31 03:32:56 localhost kernel: [1451587.873134] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
Dec 31 03:32:56 localhost kernel: [1451587.882276] [<c050952a>] (policy_get_link) from [<00011400>] (0x11400)
Dec 31 03:32:56 localhost kernel: [1451587.891451] Code: e7bffa46 fd49f410 b5f0bf00 b500b085 (eb04f85d) 
Dec 31 03:32:56 localhost kernel: [1451587.900665] ---[ end trace edc883e418c78069 ]---

Спустя почти две недели от перезапуска полёт нормальный, ничего не глючит. Помогите, пожалуйста, расшифровать, что этот oops значит, что является его источником? Самое неприятное, что после этого линукс даже сам себя корректно перезагрузить не смог. Как бороться с такими отказами средствами самой системы не понятно. Внешний watchdog решит, конечно, всё, но уж больно радикальный способ получается.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.