Python скрипт начинает выдавать странную ошибку, перезагрузка Raspberry Pi делает его go прочь - PullRequest
0 голосов
/ 14 апреля 2020

Не уверен, что это проблема Python или проблема Raspberry Pi.

У меня есть сценарий Python, который выполняется на безголовом Raspberry Pi. Он вызывается заданием crontab каждые 5 минут. Это прекрасно работает в течение нескольких дней или недель подряд, тогда случайным образом сценарий завершится неудачей - даже если s sh 'въехал в Pi и запустил сценарий вручную. Самый последний сбой дал эту трассировку стека при ручном запуске:

Traceback (most recent call last):
  File "newscan.py", line 1, in <module>
    import time, json, datetime, requests, sys, thread, signal
  File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 52, in <module>
    from .packages.urllib3.contrib import pyopenssl
  File "/usr/lib/python2.7/dist-packages/requests/packages/__init__.py", line 59, in <module>
    vendored('urllib3.contrib.pyopenssl')
  File "/usr/lib/python2.7/dist-packages/requests/packages/__init__.py", line 32, in vendored
    __import__(vendored_name, globals(), locals(), level=0)
  File "/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 47, in <module>
    import OpenSSL.SSL
  File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/usr/lib/python2.7/dist-packages/OpenSSL/rand.py", line 12, in <module>
    from OpenSSL._util import (
  File "/usr/lib/python2.7/dist-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ValueError: module functions cannot set METH_CLASS or METH_STATIC

Перезагрузка Pi сделала это go прочь - сразу после перезагрузки скрипт может быть успешно запущен.

Одна вещь, которая приходит на ум, это то, что, возможно, скрипт все еще работает, но застрял как-то, и повторный запуск вызывает сбой, но ps, похоже, не показывал это - это был список ps, когда Проявленная проблема:

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0  27088  6096 -      Ss   ?          0:15 /sbin/init splash
1     0     2     0  20   0      0     0 -      S    ?          0:00 [kthreadd]
1     0     3     2  20   0      0     0 -      S    ?          0:03 [ksoftirqd/0]
1     0     5     2   0 -20      0     0 -      S<   ?          0:00 [kworker/0:0H]
1     0     7     2  20   0      0     0 -      S    ?          1:28 [rcu_sched]
1     0     8     2  20   0      0     0 -      S    ?          0:00 [rcu_bh]
1     0     9     2 -100  -      0     0 -      S    ?          0:00 [migration/0]
1     0    10     2   0 -20      0     0 -      S<   ?          0:00 [lru-add-drain]
1     0    11     2  20   0      0     0 -      S    ?          0:00 [cpuhp/0]
1     0    12     2  20   0      0     0 -      S    ?          0:00 [cpuhp/1]
1     0    13     2 -100  -      0     0 -      S    ?          0:00 [migration/1]
1     0    14     2  20   0      0     0 -      S    ?          0:01 [ksoftirqd/1]
1     0    16     2   0 -20      0     0 -      S<   ?          0:00 [kworker/1:0H]
1     0    17     2  20   0      0     0 -      S    ?          0:00 [cpuhp/2]
1     0    18     2 -100  -      0     0 -      S    ?          0:00 [migration/2]
1     0    19     2  20   0      0     0 -      S    ?          0:14 [ksoftirqd/2]
1     0    21     2   0 -20      0     0 -      S<   ?          0:00 [kworker/2:0H]
1     0    22     2  20   0      0     0 -      S    ?          0:00 [cpuhp/3]
1     0    23     2 -100  -      0     0 -      S    ?          0:00 [migration/3]
1     0    24     2  20   0      0     0 -      S    ?          0:00 [ksoftirqd/3]
1     0    26     2   0 -20      0     0 -      S<   ?          0:00 [kworker/3:0H]
5     0    27     2  20   0      0     0 -      S    ?          0:00 [kdevtmpfs]
1     0    28     2   0 -20      0     0 -      S<   ?          0:00 [netns]
1     0    29     2  20   0      0     0 -      S    ?          0:01 [khungtaskd]
1     0    30     2  20   0      0     0 -      S    ?          0:00 [oom_reaper]
1     0    31     2   0 -20      0     0 -      S<   ?          0:00 [writeback]
1     0    32     2  20   0      0     0 -      S    ?          0:00 [kcompactd0]
1     0    33     2   0 -20      0     0 -      S<   ?          0:00 [crypto]
1     0    34     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    35     2   0 -20      0     0 -      S<   ?          0:00 [kblockd]
1     0    36     2   0 -20      0     0 -      S<   ?          0:00 [watchdogd]
1     0    38     2   0 -20      0     0 -      S<   ?          0:00 [rpciod]
1     0    39     2   0 -20      0     0 -      S<   ?          0:00 [xprtiod]
1     0    40     2  20   0      0     0 -      S    ?          0:00 [kswapd0]
1     0    41     2   0 -20      0     0 -      S<   ?          0:00 [vmstat]
1     0    42     2   0 -20      0     0 -      S<   ?          0:00 [nfsiod]
1     0    52     2   0 -20      0     0 -      S<   ?          0:00 [kthrotld]
1     0    53     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    54     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    55     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    56     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    57     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    58     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    59     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    60     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    61     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    62     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    63     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    64     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    65     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    66     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    67     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    68     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    69     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    70     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    71     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    72     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    73     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    74     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    75     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    76     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    77     2   0 -20      0     0 -      S<   ?          0:00 [iscsi_eh]
1     0    78     2   0 -20      0     0 -      S<   ?          0:00 [dwc_otg]
1     0    80     2   0 -20      0     0 -      S<   ?          0:00 [DWC Notificatio]
1     0    81     2   1 -19      0     0 -      S<   ?          0:00 [VCHIQ-0]
1     0    82     2   1 -19      0     0 -      S<   ?          0:00 [VCHIQr-0]
1     0    83     2   0 -20      0     0 -      S<   ?          0:00 [VCHIQs-0]
1     0    84     2  20   0      0     0 -      S    ?          0:00 [VCHIQka-0]
1     0    85     2  10 -10      0     0 -      S<   ?          0:00 [SMIO]
1     0    87     2 -51   -      0     0 -      S    ?          1:42 [irq/92-mmc1]
1     0    89     2   0 -20      0     0 -      S<   ?          0:00 [bioset]
1     0    90     2  20   0      0     0 -      S    ?          0:14 [mmcqd/0]
1     0    94     2  20   0      0     0 -      S    ?          0:07 [jbd2/mmcblk0p7-]
1     0    95     2   0 -20      0     0 -      S<   ?          0:00 [ext4-rsv-conver]
1     0    96     2   0 -20      0     0 -      S<   ?          0:00 [ipv6_addrconf]
4     0   114     1  20   0  35112  9488 -      Ss   ?          0:27 /lib/systemd/systemd-journald
4     0   153     1  20   0  14628  3416 -      Ss   ?          0:01 /lib/systemd/systemd-udevd
1     0   232     2   0 -20      0     0 -      S<   ?          0:00 [cfg80211]
1     0   238     2   0 -20      0     0 -      S<   ?          0:00 [brcmf_wq/mmc1:0]
1     0   239     2  20   0      0     0 -      S    ?          0:45 [brcmf_wdog/mmc1]
4   100   278     1  20   0  17276  3508 -      Ssl  ?          0:02 /lib/systemd/systemd-timesyncd
4     0   308     1  20   0  23748  2540 -      Ssl  ?          0:05 /usr/sbin/rsyslogd -n
4     0   313     1  20   0   5296  2484 -      Ss   ?          0:03 /usr/sbin/cron -f
4   105   319     1  20   0   6588  3644 -      Ss   ?          0:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
5     0   342     1  20   0   2948  1684 -      Ss   ?          0:04 /sbin/dhcpcd -q -b
4 65534   356     1  20   0   5292  2436 -      Ss   ?          0:04 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --de
4   108   359     1  20   0   6548  3312 -      Ss   ?          1:21 avahi-daemon: running [raspiMonitor.local]
4     0   362     1  20   0   7376  4332 -      Ss   ?          0:03 /lib/systemd/systemd-logind
1   108   375   359  20   0   6400   324 -      S    ?          0:00 avahi-daemon: chroot helper
4     0   418     1  20   0  39964  7328 -      Ssl  ?          0:00 /usr/sbin/lightdm
1     0   420     2   0 -20      0     0 -      S<   ?          0:00 [kworker/0:1H]
4     0   434     1  20   0  10200  4592 -      Ss   ?          0:00 /usr/sbin/sshd -D
5     0   438     1  20   0  10124  4108 -      Ss   ?          1:48 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
4     0   446   418  20   0 135364 33356 -      Ssl+ tty7       5:39 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
4     0   474   418  20   0  32184  7788 -      Sl   ?          0:00 lightdm --session-child 14 17
4  1000   482     1  20   0   9764  5972 SyS_ep Ss   ?          0:00 /lib/systemd/systemd --user
5  1000   485   482  20   0  11344  1380 -      S    ?          0:00 (sd-pam)
4  1000   490   474  20   0  52624 12816 poll_s Ssl  ?          0:03 /usr/bin/lxsession -s LXDE-pi -e LXDE
0  1000   499   482  20   0   6504  3544 SyS_ep Ss   ?          0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
1  1000   542   490  20   0   3792   228 -      Ss   ?          0:03 /usr/bin/ssh-agent x-session-manager
0  1000   548   482  20   0  39648  5736 poll_s Ssl  ?          0:00 /usr/lib/gvfs/gvfsd
0  1000   553   482  20   0  56484  6428 futex_ Sl   ?          0:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
0  1000   569   490  20   0  53008 13912 poll_s S    ?          0:00 openbox --config-file /home/pi/.config/openbox/lxde-pi-rc.xml
0  1000   573   490  20   0  43096  8904 poll_s Sl   ?          0:00 lxpolkit
0  1000   576   490  20   0  93540 20704 poll_s Sl   ?          0:00 pcmanfm --desktop --profile LXDE-pi
1  1000   582     1  20   0   3792   228 -      Ss   ?          0:00 /usr/bin/ssh-agent -s
4     0   592     1  20   0  41432  8672 -      Ssl  ?          0:01 /usr/lib/policykit-1/polkitd --no-debug
1  1000   667     1  20   0  28444  6016 poll_s Ssl  ?          0:00 /usr/lib/menu-cache/menu-cached /run/user/1000/menu-cached-:0
0  1000   678   482  20   0  74532 10776 poll_s Ssl  ?          0:00 /usr/lib/gvfs/gvfs-udisks2-volume-monitor
4     0   689     1  20   0  59348  9420 -      Ssl  ?          0:02 /usr/lib/udisks2/udisksd --no-debug
0  1000   700   482  20   0  37264  4644 poll_s Ssl  ?          0:00 /usr/lib/gvfs/gvfs-mtp-volume-monitor
1     0   704     2   0 -20      0     0 -      S<   ?         26:06 [kworker/u9:0]
1     0   706     2   0 -20      0     0 -      S<   ?          0:00 [hci0]
1     0   707     2   0 -20      0     0 -      S<   ?          0:00 [hci0]
1     0   708     1  20   0   2096   152 -      S    ?          0:00 /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow - b8:27:eb:33:ee:8d
1     0   711     2   0 -20      0     0 -      S<   ?         26:25 [kworker/u9:1]
4     0   714     1  20   0   7268  3852 -      Ss   ?          0:00 /usr/lib/bluetooth/bluetoothd
0  1000   718   482  20   0  50964  4752 poll_s Ssl  ?          0:00 /usr/lib/gvfs/gvfs-afc-volume-monitor
0  1000   723   482  20   0  38836  4996 poll_s Ssl  ?          0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
0  1000   727   482  20   0  37344  4432 poll_s Ssl  ?          0:00 /usr/lib/gvfs/gvfs-goa-volume-monitor
4     0   728     1  20   0  35036  3712 -      Ssl  ?          0:00 /usr/bin/bluealsa
5     0   750     2  10 -10      0     0 -      S<   ?          0:00 [krfcommd]
0  1000   782   482  20   0  51336  7964 poll_s Sl   ?          0:00 /usr/lib/gvfs/gvfsd-trash --spawner :1.4 /org/gtk/gvfs/exec_spaw/0
1     0   789     2  20   0      0     0 -      S    ?          0:00 [jbd2/mmcblk0p5-]
1     0   790     2   0 -20      0     0 -      S<   ?          0:00 [ext4-rsv-conver]
1     0   870     2   0 -20      0     0 -      S<   ?          0:00 [kworker/2:1H]
1     0   871     2   0 -20      0     0 -      S<   ?          0:00 [kworker/1:1H]
1     0   872     2   0 -20      0     0 -      S<   ?          0:00 [kworker/3:1H]
0  1000 16071   490  20   0 156604 32268 poll_s Sl   ?          7:00 lxpanel --profile LXDE-pi
1     0 21241     2  20   0      0     0 -      S    ?          0:02 [kworker/3:3]
1     0 29968     2  20   0      0     0 -      S    ?          0:00 [kworker/3:2]
1     0 30190     2  20   0      0     0 -      S    ?          0:00 [kworker/1:1]
1     0 31690     2  20   0      0     0 -      S    ?          0:00 [kworker/1:0]
1     0 31746     2  20   0      0     0 -      S    ?          0:00 [kworker/0:0]
4     0 32012     1  20   0   5880  2884 -      Ss   tty1       0:00 /bin/login -f
4  1000 32024 32012  20   0   5144  2764 wait_w S+   tty1       0:00 -tcsh
1     0 32128     2  20   0      0     0 -      S    ?          0:00 [kworker/u8:0]
1     0 32190     2  20   0      0     0 -      S    ?          0:00 [kworker/2:2]
1     0 32243     2  20   0      0     0 -      S    ?          0:00 [kworker/u8:2]
1     0 32244     2  20   0      0     0 -      S    ?          0:00 [kworker/0:2]
1     0 32268     2  20   0      0     0 -      S    ?          0:00 [kworker/2:0]
1     0 32270     2  20   0      0     0 -      S    ?          0:00 [kworker/u8:1]
4     0 32300   434  20   0  11520  5792 -      Ss   ?          0:00 sshd: pi [priv]
5  1000 32311 32300  20   0  11520  3296 -      S    ?          0:00 sshd: pi@pts/0
0  1000 32314 32311  20   0   5144  2760 sigsus Ss   pts/0      0:00 -tcsh
1     0 32322     2  20   0      0     0 -      S    ?          0:00 [kworker/2:1]
1     0 32331     2  20   0      0     0 -      S    ?          0:00 [kworker/u8:3]
0  1000 32332 32314  20   0   7240  1172 -      R+   pts/0      0:00 ps axl

Мне бы очень хотелось узнать, что является причиной этого. В настоящее время мое единственное потенциальное решение состоит в том, чтобы ежедневно программировать автоматическую перезагрузку c, но это было бы маскировкой, а не решением проблемы.

...