Προέκυψε σφάλμα SSL πύθωνα imaplib χρησιμοποιώντας celeryd ουρά




Αντιμετωπίζω ένα πρόβλημα με τη χρήση imaplib σε python 2.6 με την τελευταία svn Django. Θέλω να κατεβάσετε τα μηνύματα ηλεκτρονικού ταχυδρομείου IMAP σε μια ουρά (χρησιμοποιώντας celeryd). Είμαι σε θέση να συνδεθούν / λήψη μηνυμάτων ηλεκτρονικού ταχυδρομείου από τη γραμμή εντολών, αλλά όταν απαλλαγούν από την εργασία μέσω Django να celeryd παίρνω αυτό το σφάλμα: «SSLError: [ErrNo 1] \_ssl.c: 1325: Σφάλμα: 1408F10B: SSL ρουτίνες: SSL3\_GET\_RECORD : λάθος αριθμό έκδοσης».


Imaplib έγγραφα δεν αναφέρουν πώς να καθορίσετε μια έκδοση του SSL. Προσπαθώ να τραβήξει τα μηνύματα από το Gmail. Δεν καταλαβαίνω γιατί εκφόρτωση το έργο σε μια ουρά με τη χρήση celeryd θα προκαλέσει το έργο να αποτύχει. Οποιαδήποτε βοήθεια θα εκτιμηθεί πολύ.


Επεξεργασία: εδώ είναι μια στοίβα ίχνος:


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 643, σε επιλεγμένα τυπ, dat = self.\_simple\_command (όνομα, ταχυδρομική θυρίδα)


Φάκελος /usr/lib/python2.6/imaplib.py, γραμμή 1059, σε \_simple\_command self.\_command\_complete επιστροφής (όνομα, self.\_command (όνομα, * args))


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 889, σε \_command\_complete τυπ, δεδομένα = self.\_get\_tagged\_response (tag)


Φάκελος /usr/lib/python2.6/imaplib.py, γραμμή 990, στο \_get\_tagged\_response self.\_get\_response ()


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 907, σε \_get\_response resp = self.\_get\_line ()


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 1000, σε \_get\_line γραμμή = self.readline ()


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 1170, σε readline char = self.sslobj.read (1)


Φάκελος /usr/lib/python2.6/ssl.py, γραμμή 136, στο self.\_sslobj.read επιστροφή ανάγνωσης (LEN)


SSLError: [ErrNo 1] \_ssl.c: 1325: Σφάλμα: 1408F10B: SSL ρουτίνες: SSL3\_GET\_RECORD: Αριθμός λάθος έκδοση


Επεξεργασία: Εδώ είναι το έργο προσπαθώ να τρέξει, όπου imap\_parser είναι μια μονάδα που αναδιπλώνεται imaplib και τα φορτία e-mail σε db μου.



```
class DumpIMAPData(Task):
    def run(self, user, username, password, imap_address, **kwargs):
        logger = self.get_logger(**kwargs)
        celery.log.redirect_stdouts_to_logger(logger, loglevel=None)
        #imap_address is e.g. 'imap.gmail.com'                                  
        parser = imap_parser.IMAPFetcher(imap_address, username, password, user\
)
        parser.load_all_emails()
    return True

```

Έχω παρατηρήσει το έργο θα εκτελεστεί στην πραγματικότητα χρησιμοποιώντας το σέλινο αν δεν daemonize την εργασία χρησιμοποιώντας το --detach σημαία. Δεν ξέρω γιατί το έργο θα αποτύχει μόνο όταν λειτουργεί ως δαίμονας. Έχω δοκιμάσει τη ρύθμιση το ίδιο όνομα χρήστη και groupid με το -u και -g σημαίες, την ίδια umask, και εξασφαλίζοντας τη διαδρομή και κατάλογοι εργασίας είναι οι ίδιες τόσο για τον δαίμονα και να μη daemonized έκδοση, αλλά το έργο ακόμα δεν θα τρέξει το σέλινο, όταν σέλινο λειτουργεί ως ένα δαίμονα.


I m χρησιμοποιώντας την πιο πρόσφατη έκδοση του σέλινου (0.9.4).
Σύμφωνα με τον δημιουργό του celeryd:


Το σέλινο δεν κάνει τη δική αποκόλληση του από 01a8a0e. Υπήρξε πάρα πολλά προβλήματα με αυτό, και δεδομένου ότι λειτουργεί κατά την αποσύνδεση χρησιμοποιώντας start-stop-daemon, supervisord, launchd και ούτω καθεξής, θα ενθαρρύνονται να χρησιμοποιούν αυτά τα εργαλεία αντ 'αυτού.
update

κατάφερα να το φτιάξω. το πρόβλημα οφειλόταν ότι η ρύθμηση:

config interface 'wan'

option ifname 'dsl0.835'

option device 'dsl0'

option proto 'pppoe'

option username 'guest@adsl.gr'

option password '******'

option ipv6 'none'

option keepalive '10'

option … βρέθηκε η λύση. 
η εντολή “mkinitcpio -p linux” δε δουλεύει σωστά στο manjaro (σε αντίθεση με το arch), γιατί έχει διαφορετική ονοματολογία στα kernels, αντί για “linux”, είναι “linux419” , “linux53”, κλπ. 
οπότε θέλει ή να την εκτελέσεις με το σωστό όνομα, ή “mkinitcpio -p” για να τα κάνει rebuild… προτεινω να δοκιμασεις πρωτα με τους ανοιχτους οδηγους να δεις πως θα σε παει και αν συνεχισεις να εχεις προβλημα εγκατεστησε <https://snapcraft.io/install/fwts/manjaro>

που θα μας δωσει αναλυτικες πληροφοριες μην πειραξεις τιποτα απλα αλλαξε την ip του εκτυπωτη σε 192.168.1.15 και βαλε αυτη στο cups στον υπολογιστη σου και σε καθε υπολογιστη/συσκευη που θελεις να το χρησιμοποιησεις. το πρόβλημα μάλλον είναι ότι δεν κλείνει ουσιαστικά η εφαρμογή. είχα παρόμοιο θέμα πριν αρκετό καιρό(νομίζω κάποια στιγμή είχα απαντήσει εδώ σε ανάλογο θέμα). αυτό που έκανα εγώ και διόρθωσε το πρόβλημα ήταν η τροποποίηση της συντόμευσης για το άνοιγμα της εφαρμογής και η αλλαγή της γραμμής που ανοί… [εικόνα] dancaer69:

το πρόβλημα δημιουργήται όταν η session έχει ξεκινήσει με startx

έχεις βάλει το dbus-launch πριν το sinnamon? στο. xinitrc

γενικά είναι καλό να σβήσεις το .xinitrc και να το κάνεις μια κόπια από το

/etc/x11/xinit/xinitrc

αφαίρεσε τις τελευταίες 5 γραμμές και πρόσθεσε ό… όπως το περιγράφεις μοιάζει με bug για τον lightdm. ίσως να είναι κάτι μικρό και να θέλει απλώς κάποια ρύθμιση (ψάξε μέσα στο /etc για τον lightdm) αλλά θα έλεγα απλά δοκίμασε άλλον dm. είχα κακή εμπειρία με τον lightdm παλιότερα. έχω εξαιρετική εμπειρία τελευταία με τον sddm (όταν πρωτοβγήκε ήταν χ… Όταν άρχισα με `$ nohup storm dev-zookeper`,


**Μέθοδος1:** χρήση `jobs`,



```
[[email protected]](/cdn-cgi/l/email-protection):/home/vmfest# jobs -l
[1]+ 11129 Running                 nohup ~/bin/storm/bin/storm dev-zookeeper &

```

**Method2:**  **χρησιμοποιώντας `ps`την εντολή.** 



```
$ ps xw
PID  TTY      STAT   TIME COMMAND
1031 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
10582 ?        S      0:01 [kworker/0:0]
10826 ?        Sl     0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ?        Ss     0:00 sshd: vmfest [priv] 

```

Στήλη TTY με `?`=> `nohup`προγράμματα που εκτελούνται.


**Περιγραφή**


* στήλη TTY = το τερματικό συνδέεται με τη διαδικασία
* στήλη STAT = κατάσταση μιας διαδικασίας
	+ S = διακοπτόμενη ύπνου (αναμονή για ένα γεγονός για να ολοκληρωθεί)
	+ l = είναι multi-threaded (χρησιμοποιώντας CLONE\_THREAD, όπως NPTL Pthreads κάνουμε)


**Αναφορά**


`$ man ps` # Στη συνέχεια αναζήτηση `/PROCESS STATE CODES` νομίζω ότι ο 5.13 δεν είναι ακόμη σταθερός(είναι σε στάδιο rc εκδόσεων απ’ ότι βλέπω) κι έτσι εκτός του ότι δεν είναι βέβαιο ότι θα λυθεί το πρόβλημά σου μπορεί να δημιουργηθούν και άλλα περισσότερα. καλύτερα νομίζω είναι(αφού όπως γράφεις το πρόβλημα δημιουργήθηκε μετά την τελευταία αναβάθμιση του … αν δεν έχεις πρόβλημα, καλύτερα μην κάνεις τίποτα. όπως το βλέπω μάλλον είναι αδιάφοροι αισθητήρες που δεν αναγνωρίζονται σωστά. (μπορείς να ελπίζεις ότι απλά θα φτιάξει σε επόμενους πυρήνες linux, αλλά πιστεύω δεν είναι καν σημαντικό θέμα)