Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 283223 - Portage 2.2_rc40 | emerge --sync failed (with sqlite cache module)
Summary: Portage 2.2_rc40 | emerge --sync failed (with sqlite cache module)
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS, REGRESSION
: 284654 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-08-30 09:13 UTC by Alexey Skobkin
Modified: 2009-11-11 03:11 UTC (History)
2 users (show)

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


Attachments
Fix the UnicodeDecodeError (unicode_error.patch,562 bytes, patch)
2009-08-30 10:39 UTC, Zac Medico
Details | Diff
Fix the UnicodEncodeError (unicode_error.patch,837 bytes, patch)
2009-08-30 20:08 UTC, Zac Medico
Details | Diff
Fix the UnicodEncodeError (unicode_error.patch,732 bytes, patch)
2009-08-30 20:10 UTC, Zac Medico
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Skobkin 2009-08-30 09:13:11 UTC
When I do emerge --sync process is interrupted with an error.


***
Processing media-sound/aeolus-ym
Processing media-sound/afsp
Processing media-sound/alac_decoder
Processing media-sound/albumart
Processing media-sound/aldrin
Processing media-sound/alsa-driver
Processing media-sound/alsa-firmwareProcessing media-sound/aeolus-ym
Processing media-sound/afsp
Processing media-sound/alac_decoder
Processing media-sound/albumart
Processing media-sound/aldrin
Processing media-sound/alsa-driver
Processing media-sound/alsa-firmware
Processing media-sound/alsa-headers
Processing media-sound/alsa-midi-humanizer
Processing media-sound/alsa-tools
Processing media-sound/alsa-utils
Processing media-sound/alsamixer-app
Processing media-sound/alsamixergui
Processing media-sound/alsaplayer
Processing media-sound/alsaplayer-fftscope
Processing media-sound/alsaplayer-midi
Processing media-sound/amarok
Processing media-sound/amarok-utils
Processing media-sound/amarokfs
Processing media-sound/amidimap
Processing media-sound/ams
Processing media-sound/amsynth
Processing media-sound/apetag
Processing media-sound/aqualung
Processing media-sound/ardour
Processing media-sound/arename
Processing media-sound/ario
Processing media-sound/aseqjoy
Processing media-sound/aseqview
Processing media-sound/asoundconf
Processing media-sound/asunder
Processing media-sound/audacious
Processing media-sound/audacity
Processing media-sound/audex
Processing media-sound/audicle
Processing media-sound/audio-entropyd
Processing media-sound/audiocompress
Processing media-sound/audiotag
Processing media-sound/audtty
Processing media-sound/aumix
Processing media-sound/awesfx
Processing media-sound/aylet
Processing media-sound/azr3-jack
Traceback (most recent call last):
  File "/usr/bin/emerge", line 40, in <module>
    retval = emerge_main()
  File "/usr/lib/portage/pym/_emerge/main.py", line 1334, in emerge_main
    myopts.get("--load-average"))
  File "/usr/lib/portage/pym/_emerge/actions.py", line 1683, in action_regen
    regen.run()
  File "/usr/lib/portage/pym/_emerge/MetadataRegen.py", line 84, in run
    self._poll_loop()
  File "/usr/lib/portage/pym/_emerge/PollScheduler.py", line 127, in _poll_loop
    handler(f, event)
  File "/usr/lib/portage/pym/_emerge/EbuildMetadataPhase.py", line 120, in _output_handler
    self._unregister_if_appropriate(event)
  File "/usr/lib/portage/pym/_emerge/AbstractPollTask.py", line 27, in _unregister_if_appropriate
    self.wait()
  File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait()
  File "/usr/lib/portage/pym/_emerge/SubProcess.py", line 78, in _wait
    self._set_returncode(wait_retval)
  File "/usr/lib/portage/pym/_emerge/EbuildMetadataPhase.py", line 137, in _set_returncode
    self.ebuild_mtime)
  File "/usr/lib/portage/pym/portage/dbapi/porttree.py", line 525, in _metadata_callback
    self.auxdb[repo_path][cpv] = metadata
  File "/usr/lib/portage/pym/portage/cache/template.py", line 77, in __setitem__
    self._setitem(cpv, d)
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 181, in _setitem
    values_parameters.append(self._db_escape_string(values.get(k, '')))
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 51, in _db_escape_string
    return "'%s'" % str(s).replace("'","''")
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 14: ordinal not in range(128)

--------------
It occurs only when the overlay pro-audio is enabled.

emerge --info:
pc ~ # emerge --info
Portage 2.2_rc40 (default/linux/x86/2008.0, gcc-4.4.1, glibc-2.10.1-r0, 2.6.28-gentoo-r5 i686)
=================================================================
System uname: Linux-2.6.28-gentoo-r5-i686-Intel-R-_Core-TM-2_CPU_6300_@_1.86GHz-with-gentoo-2.0.1
Timestamp of tree: Sun, 30 Aug 2009 08:15:02 +0000
ccache version 2.4 [disabled]
app-shells/bash:     4.0_p28
dev-java/java-config: 2.1.9
dev-lang/python:     2.6.2-r1, 3.1.1
dev-python/pycrypto: 2.0.1-r8
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.6.4-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.4.3-r3
sys-apps/sandbox:    2.1
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.6.3, 1.7.9-r1, 1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.19.1-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -msse -msse2 -mmmx -m3dnow -msse3 -mfpmath=sse -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/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 /etc/udev/rules.d"
CXXFLAGS="-O2 -march=core2 -msse -msse2 -mmmx -m3dnow -msse3 -mfpmath=sse -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages metadata-transfer parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/ ftp://ftp.linux.ee/pub/gentoo/distfiles/ http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/ "
LANG="ru_RU.UTF-8"
LC_ALL=""
LDFLAGS="-Wl,-O1"
LINGUAS="en ru"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/games /usr/local/portage/layman/java-overlay /usr/local/portage/layman/sunrise /usr/local/portage/layman/synce /usr/local/portage/layman/qutim-overlay /usr/local/portage/layman/pro-audio"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X acl alsa aspell bzip2 cdr cli cracklib crypt cups dbus dri dvd esd fortran gdbm gpm hal iconv isdnlog java jpeg jpeg2k jre kde lm_sensors mmx mp3 mudflap ncurses nls nptl nptlonly opengl openmp pam pcre perl php png pppd python qt qt3 qt4 readline reflection samba session spell spl sse sse2 sse3 ssl ssse3 sysfs tcpd unicode x86 xcomposite xine xorg xv zlib" ALSA_CARDS="hda-intel" 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="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 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" SANE_BACKENDS="nothing coolscan3 hp hp3500 hp3900 snapscan" USERLAND="GNU" VIDEO_CARDS="fglrx radeonhd radeon vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


Reproducible: Always

Steps to Reproduce:
1. layman -a pro-audio
2. emerge --sync && emerge --regen
Comment 1 Zac Medico gentoo-dev 2009-08-30 10:39:33 UTC
Created attachment 202701 [details, diff]
Fix the UnicodeDecodeError

If this patch is saved as /tmp/unicode_error.patch, then it can be applied as follows:

  patch /usr/lib/portage/pym/portage/cache/sqlite.py /tmp/unicode_error.patch
Comment 2 Alexey Skobkin 2009-08-30 11:26:20 UTC
The patch helped, but not completely.
_______
***
xfce-extra/xfce4-mixer/
xfce-extra/xfce4-screenshooter/
xfce-extra/xfce4-taskmanager/

Number of files: 136215
Number of files transferred: 73
Total file size: 180407456 bytes
Total transferred file size: 312266 bytes
Literal data: 312266 bytes
Matched data: 0 bytes
File list size: 3358185
File list generation time: 11.155 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 41943
Total bytes received: 3510809

sent 41943 bytes  received 3510809 bytes  55948.85 bytes/sec
total size is 180407456  speedup is 50.78

>>> Updating Portage cache
 6% [====>                                                                     ]Traceback (most recent call last):
  File "/usr/bin/emerge", line 40, in <module>
    retval = emerge_main()
  File "/usr/lib/portage/pym/_emerge/main.py", line 1328, in emerge_main
    return action_sync(settings, trees, mtimedb, myopts, myaction)
  File "/usr/lib/portage/pym/_emerge/actions.py", line 2171, in action_sync
    action_metadata(settings, portdb, myopts, porttrees=[myportdir])
  File "/usr/lib/portage/pym/_emerge/actions.py", line 1632, in action_metadata
    tree_data.dest_db[cpv] = src
  File "/usr/lib/portage/pym/portage/cache/template.py", line 77, in __setitem__
    self._setitem(cpv, d)
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 181, in _setitem
    values_parameters.append(self._db_escape_string(values.get(k, '')))
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 51, in _db_escape_string
    return "'%s'" % s.replace("'", "''")
AttributeError: 'long' object has no attribute 'replace'
Comment 3 Alexey Skobkin 2009-08-30 13:37:20 UTC
It seems that the patch killed the whole emerge.

pc ~ # emerge portage

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

Calculating dependencies -Traceback (most recent call last):
  File "/usr/bin/emerge", line 40, in <module>
    retval = emerge_main()
  File "/usr/lib/portage/pym/_emerge/main.py", line 1412, in emerge_main
    myopts, myaction, myfiles, spinner)
  File "/usr/lib/portage/pym/_emerge/actions.py", line 300, in action_build
    settings, trees, myopts, myparams, myaction, myfiles, spinner)
  File "/usr/lib/portage/pym/_emerge/depgraph.py", line 4988, in backtrack_depgraph
    runtime_pkg_mask=runtime_pkg_mask)
  File "/usr/lib/portage/pym/_emerge/depgraph.py", line 259, in __init__
    allow_backtracking, runtime_pkg_mask)
  File "/usr/lib/portage/pym/_emerge/depgraph.py", line 177, in __init__
    vardb.aux_get(pkg.cpv, [])
  File "/usr/lib/portage/pym/_emerge/FakeVartree.py", line 115, in _aux_get_wrapper
    self._portdb.aux_get(pkg, self._portdb_keys)))
  File "/usr/lib/portage/pym/portage/dbapi/porttree.py", line 642, in aux_get
    mycpv, myebuild, mylocation, mydata, emtime)
  File "/usr/lib/portage/pym/portage/dbapi/porttree.py", line 525, in _metadata_callback
    self.auxdb[repo_path][cpv] = metadata
  File "/usr/lib/portage/pym/portage/cache/template.py", line 77, in __setitem__
    self._setitem(cpv, d)
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 181, in _setitem
    values_parameters.append(self._db_escape_string(values.get(k, '')))
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 51, in _db_escape_string
    return "'%s'" % s.replace("'", "''")
AttributeError: 'int' object has no attribute 'replace'
Comment 4 Zac Medico gentoo-dev 2009-08-30 20:08:00 UTC
Created attachment 202743 [details, diff]
Fix the UnicodEncodeError

Reverse the previous patch and apply this one instead.
Comment 5 Zac Medico gentoo-dev 2009-08-30 20:10:22 UTC
Created attachment 202744 [details, diff]
Fix the UnicodEncodeError
Comment 6 Alexey Skobkin 2009-08-31 15:47:01 UTC
The patch could not be canceled!


pc tmp # patch -R /usr/lib/portage/pym/portage/cache/sqlite.py /tmp/unicode_error.patch
patching file /usr/lib/portage/pym/portage/cache/sqlite.py
Hunk #1 FAILED at 47.
1 out of 1 hunk FAILED -- saving rejects to file /usr/lib/portage/pym/portage/cache/sqlite.py.rej
Comment 7 Alexey Skobkin 2009-08-31 17:28:46 UTC
The new patch is working.
Comment 8 Zac Medico gentoo-dev 2009-09-12 11:28:16 UTC
*** Bug 284654 has been marked as a duplicate of this bug. ***
Comment 9 Zac Medico gentoo-dev 2009-09-20 00:22:49 UTC
This is fixed in 2.2_rc41.