Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 457990 - dev-lang/python smtplib.SMTP.__init__() fails to catch "Resource temporarily unavailble" unavailable
Summary: dev-lang/python smtplib.SMTP.__init__() fails to catch "Resource temporarily ...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-17 15:50 UTC by Diego Elio Pettenò (RETIRED)
Modified: 2024-03-15 03:59 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Elio Pettenò (RETIRED) gentoo-dev 2013-02-17 15:50:55 UTC
https://tinderboxlogs.s3.amazonaws.com/tbamd64.excelsior.flameeyes.eu/dev-python%3Afudge-1.0.3%3A20130217-062411.html

Portage 2.2.0_alpha161 (default/linux/amd64/13.0, gcc-4.7.2-asneeded, glibc-2.17, 3.7.0-hardened x86_64)
=================================================================
System uname: Linux-3.7.0-hardened-x86_64-AMD_Opteron-TM-_Processor_6272-with-gentoo-2.2
KiB Mem:    65914672 total,  33393308 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Sat, 09 Feb 2013 16:15:02 +0000
ld GNU ld (GNU Binutils) 2.23.1
distcc 3.1 x86_64-pc-linux-gnu [disabled]
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p42
dev-java/java-config:     2.1.12-r1
dev-lang/python:          2.7.3-r3, 3.2.3-r2
dev-util/ccache:          3.1.9
dev-util/cmake:           2.8.10.2-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.4_p6-r1, 1.9.6-r3, 1.10.3, 1.11.6, 1.12.6, 1.13.1
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.6.3, 4.7.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.7 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo tbamd64
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -ggdb -march=native -ftracer -frecord-gcc-switches"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/entropy /opt/openjms/config /usr/lib64/tomoyo/conf /usr/share/bufrtables /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/polkit-1/actions /usr/share/qpsmtpd/plugins /usr/share/themes/oxygen-gtk/gtk-2.0 /var/bind /var/lib/hsqldb /var/lib/neatx/home /var/spool/munin-async/.ssh /var/yp/Makefile"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/games/angband/edit/ /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -ggdb -march=native -ftracer -frecord-gcc-switches"
DISTDIR="/var/cache/portage/distfiles"
FCFLAGS="-O2 -pipe -ggdb -march=native -frecord-gcc-switches"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict test test-fail-continue unknown-features-warn unmerge-orphans userfetch userpriv usersandbox"
FFLAGS="-O2 -pipe -ggdb -march=native -frecord-gcc-switches"
GENTOO_MIRRORS="http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://gentoo.mirrors.hoobly.com/ http://gentoo.llarian.net/"
LANG="en_US.utf8"
LC_ALL="C"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j24"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/tmp"
PORTDIR="/var/cache/tinderbox/tree"
PORTDIR_OVERLAY="/root/overlay"
SYNC="rsync://excelsior.flameeyes.eu/gentoo-portage"
USE="3dnow 3dnowex acl amd64 berkdb bzip2 cli cracklib crypt cxx doc dri emacs ffmpeg fortran gnutls gpm iconv icu intl introspection ipv6 mmx modules mudflap multilib ncurses nls nptl openmp pam pax_kernel pcre pdf plasma qt3support readline semantic-desktop session snmp sse sse2 sse3 sse4 ssl ssse3 tcmalloc tcpd udev unicode vhosts zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Ian Delaney (RETIRED) gentoo-dev 2013-02-24 11:31:14 UTC
>>> Source compiled.
 * Testing of dev-python/fudge-1.0.3 with CPython 2.7...
..................................................................................----------------------------------------------------------------------
Ran 195 tests in 0.451s

OK
 * Testing of dev-python/fudge-1.0.3 with CPython 3.1...
...............................
----------------------------------------------------------------------
Ran 195 tests in 0.483s

OK

couldn't replicate.  I gather it can be done but I'm yet to figure how with (some of) these net connect bugs
Comment 2 Diego Elio Pettenò (RETIRED) gentoo-dev 2013-02-24 11:46:30 UTC
If you're not trying without a network connection being up please don't say "Could not reproduce" as it sounds like you cannot reproduce in the same situation. Thank you.
Comment 3 Mike Gilbert gentoo-dev 2013-02-24 20:00:10 UTC
This is a bit subtle. The failure occurs on a DNS lookup for the local hostname.

addr = socket.gethostbyname(socket.gethostname())

error: [Errno 11] Resource temporarily unavailable

As far as I can tell, no network resources are actually accessed.

Diego: I suggest putting your hostname in /etc/hosts, or utilizing sys-auth/nss-myhostname.
Comment 4 Diego Elio Pettenò (RETIRED) gentoo-dev 2013-02-24 21:22:50 UTC
So we either should change the defaults from the install itself, or it has to fix the problem in some other way.

The whole point of the tinderbox is not change the default setup at all, as then we'd have tests depending on custom configuration that we can't assume is there.
Comment 5 Diego Elio Pettenò (RETIRED) gentoo-dev 2013-02-24 21:23:14 UTC
Does it really have to look for the hostname, and can't it just use "localhost" (which will always resolve properly)?
Comment 6 Mike Gilbert gentoo-dev 2013-02-24 22:01:07 UTC
smtplib is looking for a FQDN for the local machine. It uses this in the HELO message when you connect to an SMTP sever.

A very common way to get an FQDN is to resolve the local hostname to an address, and then resolve that address to a name, which will generally be the FQDN. For example:

hostname = gethostname()
addr = gethostbyname(hostname)
fqdn = gethostbyaddr(addr)

I don't think it makes sense to change the code in smtplib.

Also, the gentoo handbook demonstrates adding the local hostname to /etc/hosts.

http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=1&chap=8#doc_chap2_pre10
Comment 7 Diego Elio Pettenò (RETIRED) gentoo-dev 2013-02-24 22:04:29 UTC
I know it demonstrates how and I KNOW HOW TO DO SO.

But it's not done by default, which mean I don't do it by default. I don't even set timezone, or locale, those are all intended. Tests that rely on that configuration are not valid tests to begin with.

Looks like smtplib has a bug then, because it should handle that just fine (Apache does, and needs to get the same info.)
Comment 8 Mike Gilbert gentoo-dev 2013-02-24 22:19:44 UTC
I'm not sure how you actually go about disabling networking on the tinderbox.

I can't reproduce that "Resource temporarily unavailable" error, which makes reporting this problem to python upstream rather difficult. I get a 

Perhaps you could file a bug there instead?
Comment 9 Mike Gilbert gentoo-dev 2013-02-24 22:33:18 UTC
(In reply to comment #8)
> I get a 

I meant to say that I get the following exception with my network interface disabled, which smtplib handles correctly:

socket.gaierror: [Errno -3] Temporary failure in name resolution
Comment 10 Ian Delaney (RETIRED) gentoo-dev 2013-02-25 09:18:51 UTC
(In reply to comment #7)
> I know it demonstrates how and I KNOW HOW TO DO SO.
> 
> But it's not done by default, which mean I don't do it by default. 

Oh my, to default or not to dafault. Perhaps we should fix this bug by changing the install handbook. I mean really!! 

<Also, the gentoo handbook demonstrates adding the local hostname to /etc/hosts.

bugfix; 

"Gentoo document install writers advise to adding the local hostname to /etc/hosts, but be informed, it's not the default, so don't go making for troublesome bugs. ever! esp. potential devs. so there"

Is this about rigid adherence to the book o' rules, demanding all to bow to a pedantic and priggish interpretation of the norm? 

Well, the tests passed for me because I followed the install manual, looooong ago, and have thus looooong had hostname in /etc/hosts, and thought nothing of it since.

All it proves to me is that 2 good and looongish standing devs differ in a fundamental net related setup re the norm. Dare I say, both are right, in their own pedantic and priggish way.

sheeeesh 

However, subsequent to all o' the above, I think it reasonable to suggest that the normative rules that drive these tinderbox bugs warrant some outlining, probably takes no more than a paragraph. You CANNOT see this and such bugs are unwarranted or ill-directed since they hold legitimate foundation. It' the foundation that's the weak link here, not their legitimacy.