Issue #2346
closedrepoview decode errors
Description
Hello all,
I've been tracking down publishing failures due to repoview generation not being able to decode to UTF-8.
[traceback] => Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/celery/app/trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/pulp/server/async/tasks.py", line 484, in __call__
return super(Task, self).__call__(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/pulp/server/async/tasks.py", line 103, in __call__
return super(PulpTask, self).__call__(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/celery/app/trace.py", line 437, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/pulp/server/controllers/repository.py", line 971, in publish
result = check_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
File "/usr/lib/python2.6/site-packages/pulp/server/controllers/repository.py", line 1038, in check_publish
result = _do_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
File "/usr/lib/python2.6/site-packages/pulp/server/controllers/repository.py", line 1090, in _do_publish
publish_report = publish_repo(transfer_repo, conduit, call_config)
File "/usr/lib/python2.6/site-packages/pulp/server/async/tasks.py", line 669, in wrap_f
return f(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/distributors/yum/distributor.py", line 174, in publish_repo
return self._publisher.process_lifecycle()
File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 564, in process_lifecycle
super(PluginStep, self).process_lifecycle()
File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 161, in process_lifecycle
step.process()
File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 263, in process
self._record_failure(e, tb)
File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 394, in _record_failure
error_details['error'] = str(e)
File "/usr/lib/python2.6/site-packages/pulp/server/exceptions.py", line 96, in __str__
return msg.encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 113061: ordinal not in range(128)
After some investication, I've narrowed it down to this pattern:
This command (which pulp seems to be generating):
createrepo_c -d --update --keep-all-metadata --local-sqlite -s sha256 --skip-stat /var/lib/pulp/published/yum/http/repos/mirror/scientific/6x/x86_64/os/
Followed by:
repoview -f /var/lib/pulp/published/yum/http/repos/mirror/scientific/6x/x86_64/os/
Will generate the decoding error:
sqlite3.OperationalError: Could not decode to UTF-8 column 'location_href' with text ...
However, if I run the createrepo_c without the update or keep metadata flags:
createrepo_c -d --local-sqlite -s sha256 --skip-stat /var/lib/pulp/published/yum/http/repos/mirror/scientific/6x/x86_64/os/
The repoview command works like a charm.
Any thoughts?
Files
Updated by alexjfisher over 7 years ago
Hi
I think I've just hit this bug too. Feed URL is https://www.mirrorservice.org/sites/mirror.centos.org/7/os/x86_64
pulp-admin rpm repo sync run --repo-id centos-7-x86_64-base
-SNIP-
Generating HTML files
[\]
Task Failed
'ascii' codec can't decode byte 0xd0 in position 19732: ordinal not in
range(128)
in /var/log/messages
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) oview", line 544, in do_packages\n pkg_data = self.get_package_data(pkgname)\n File "/usr/bin/repoview", line 442, in get_package_data\n rows = pcursor.fetchall()\nsqlite3.OperationalError: Could not decode to UTF-8 column \'location_href\' with text \'\x90\x0b\x17\x04\x81\x7f\'\n', 40906, 40907, 'ordinal not in range(128)')
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) Traceback (most recent call last):
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) R = retval = fun(*args, **kwargs)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 505, in __call__
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) return super(Task, self).__call__(*args, **kwargs)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 108, in __call__
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) return super(PulpTask, self).__call__(*args, **kwargs)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 437, in __protected_call__
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) return self.run(*args, **kwargs)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py", line 1099, in publish
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) result = check_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py", line 1191, in check_publish
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) result = _do_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py", line 1243, in _do_publish
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) publish_report = publish_repo(transfer_repo, conduit, call_config)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 708, in wrap_f
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) return f(*args, **kwargs)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/distributors/yum/distributor.py", line 174, in publish_repo
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) return self._publisher.process_lifecycle()
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 572, in process_lifecycle
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) super(PluginStep, self).process_lifecycle()
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 163, in process_lifecycle
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) step.process()
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 271, in process
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) self._record_failure(e, tb)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 402, in _record_failure
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) error_details['error'] = str(e)
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) File "/usr/lib/python2.7/site-packages/pulp/server/exceptions.py", line 96, in __str__
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) return msg.encode('utf-8')
Apr 6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 40906: ordinal not in range(128)
Other than turning off repoview, any other solutions?
Thanks,
Alex
Updated by bmbouter over 7 years ago
We could help guide you into contributing a PR for it. I think you want to cause the utf-8 decoding to use the 'replace' option. We made some similar changes fixing Issue #1903. You can see some of the associated Pull requests there. Also I wrote some about the 'replace' option here
Also consider writing a Pulp Smash test for this. Those are written here: https://github.com/PulpQE/pulp-smash/issues and the issue number gets stored as the 'Smash Test' field.
Updated by cretep over 7 years ago
- File repoview-unicode.diff repoview-unicode.diff added
There are two bugs, one with repoview and one with pulp.
Firstly, repoview cannot handle utf8 strings in rpm package metadata. A quick patch for repoview is attached. repoview has two problems: it instructed sqlite to output ascii (which failed), and its html/rss writers required ascii inputs (and thus failed).
Secondly, pulp's error handling cannot handle utf8 strings. See the last two lines of the traceback above:
error_details['error'] = str(e)
...
return msg.encode('utf-8')
str()
is not unicode-safe, and .encode()
is overly strict and has failed -- really undesirable for a failure handler! The most failsafe approach I have found is unicode(x, errors='ignore')
Updated by bmbouter over 7 years ago
@cretep Thank you for investigating this.
Is the repoview issue known upstrema in repoview? It would be great to if you could ensure that it is and submit your patch to them.
Regarding the Pulp issue what about using: return msg.encode('utf-8', 'replace')
there instead of return msg.encode('utf-8')
? Or are you suggesting replacing error_details['error'] = str(e)
with error_details['error'] = unicode(e, errors='ignore')
?
Posting an actual diff (against master please) would help me understand what you are proposing. Can that be done?
Updated by pthomas@redhat.com over 7 years ago
- Severity changed from 2. Medium to 3. High
Seem like this is an issue with the 2.14 beta as well. I have been able to reproduce this on a RHEL7.4 pulp server syncing rhel7 content.
[root@ibm-x3550m3-07 ~]# rpm -qa |grep pulp |sort
pulp-admin-client-2.14.0-0.3.rc.el7.noarch
pulp-deb-admin-extensions-1.5.2-0.2.beta.el7.noarch
pulp-deb-plugins-1.5.2-0.2.beta.el7.noarch
pulp-docker-admin-extensions-3.0.0-0.3.rc.el7.noarch
pulp-docker-plugins-3.0.0-0.3.rc.el7.noarch
pulp-ostree-admin-extensions-1.3.0-0.3.rc.el7.noarch
pulp-ostree-plugins-1.3.0-0.3.rc.el7.noarch
pulp-puppet-admin-extensions-2.14.0-0.3.rc.el7.noarch
pulp-puppet-plugins-2.14.0-0.3.rc.el7.noarch
pulp-python-admin-extensions-2.0.1-0.3.rc.el7.noarch
pulp-python-plugins-2.0.1-0.3.rc.el7.noarch
pulp-rpm-admin-extensions-2.14.0-0.3.rc.el7.noarch
pulp-rpm-plugins-2.14.0-0.3.rc.el7.noarch
pulp-selinux-2.14.0-0.3.rc.el7.noarch
pulp-server-2.14.0-0.3.rc.el7.noarch
python-isodate-0.5.0-4.pulp.el7.noarch
python-kombu-3.0.33-6.pulp.el7.noarch
python-pulp-bindings-2.14.0-0.3.rc.el7.noarch
python-pulp-client-lib-2.14.0-0.3.rc.el7.noarch
python-pulp-common-2.14.0-0.3.rc.el7.noarch
python-pulp-deb-common-1.5.2-0.2.beta.el7.noarch
python-pulp-docker-common-3.0.0-0.3.rc.el7.noarch
python-pulp-oid_validation-2.14.0-0.3.rc.el7.noarch
python-pulp-ostree-common-1.3.0-0.3.rc.el7.noarch
python-pulp-puppet-common-2.14.0-0.3.rc.el7.noarch
python-pulp-python-common-2.0.1-0.3.rc.el7.noarch
python-pulp-repoauth-2.14.0-0.3.rc.el7.noarch
python-pulp-rpm-common-2.14.0-0.3.rc.el7.noarch
python-pulp-streamer-2.14.0-0.3.rc.el7.noarch
[root@ibm-x3550m3-07 ~]#
[root@ibm-x3550m3-07 ~]# pulp-admin rpm repo create --repo-id RHEL7 --feed http://download.devel.redhat.com/released/RHEL-7/7.4/Server/x86_64/os/ --repoview true --remove-missing true
Successfully created repository [RHEL7]
[root@ibm-x3550m3-07 ~]# pulp-admin rpm repo sync run --repo-id RHEL7
+----------------------------------------------------------------------+
Synchronizing Repository [RHEL7]
+----------------------------------------------------------------------+
This command may be exited via ctrl+c without affecting the request.
Downloading metadata...
[|]
... completed
Downloading repository content...
[\]
[==================================================] 100%
RPMs: 4986/4986 items
Delta RPMs: 0/0 items
... completed
Downloading distribution files...
[==================================================] 100%
Distributions: 5/5 items
... completed
Importing errata...
[-]
... completed
Importing package groups/categories...
[|]
... completed
Cleaning duplicate packages...
[-]
... completed
Task Succeeded
Initializing repo metadata
[-]
... completed
Publishing Distribution files
[-]
... completed
Publishing RPMs
[==================================================] 100%
4986 of 4986 items
... completed
Publishing Delta RPMs
... skipped
Publishing Errata
[|]
... completed
Publishing Comps file
[==================================================] 100%
91 of 91 items
... completed
Publishing Metadata.
[-]
... completed
Closing repo metadata
[-]
... completed
Generating sqlite files
[-]
... completed
Generating HTML files
[-]
Task Failed
'ascii' codec can't decode byte 0xf0 in position 11874: ordinal not in
range(128)
[root@ibm-x3550m3-07 ~]# hostname
ibm-x3550m3-07.lab.eng.brq.redhat.com
[root@ibm-x3550m3-07 ~]# pulp-admin rpm repo sync run --repo-id RHEL7
+----------------------------------------------------------------------+
Synchronizing Repository [RHEL7]
+----------------------------------------------------------------------+
This command may be exited via ctrl+c without affecting the request.
Downloading metadata...
[|]
... completed
Downloading repository content...
[-]
[==================================================] 100%
RPMs: 0/0 items
Delta RPMs: 0/0 items
... completed
Downloading distribution files...
[==================================================] 100%
Distributions: 0/0 items
... completed
Importing errata...
[-]
... completed
Importing package groups/categories...
[-]
... completed
Cleaning duplicate packages...
[-]
... completed
Task Succeeded
Initializing repo metadata
[-]
... completed
Publishing Distribution files
[-]
... completed
Publishing RPMs
[==================================================] 100%
4986 of 4986 items
... completed
Publishing Delta RPMs
... skipped
Publishing Errata
[|]
... completed
Publishing Comps file
[==================================================] 100%
91 of 91 items
... completed
Publishing Metadata.
[-]
... completed
Closing repo metadata
[-]
... completed
Generating sqlite files
[-]
... completed
Generating HTML files
[/]
Task Failed
Error occurred during 'repoview' execution: Examining repository...done
Opening
primary database...done
Opening changelogs database...done
Parsing
comps.xml...done
Copying layout...done
Examining state db...done
Collecting
letters...done
Writing package compat-db47.html
Writing package
compat-glibc.html
Writing package compat-libcap1.html
Writing package
compat-libf2c-34.html
Writing package compat-libgfortran-41.html
Writing package
compat-libtiff3.html
Writing package compat-openldap.html
Writing package
libpng12.html
Writing package openssl098e.html
Writing group
compat-libraries.group.html
Writing package elinks.html
Writing package
fetchmail.html
Writing package ftp.html
Writing package irssi.html
Writing
package lftp.html
Writing package mutt.html
Writing package whois.html
Writing
group console-internet.group.html
Writing package ElectricFence.html
Writing
package ant.html
Writing package autoconf.html
Writing package
automake.html
Writing package babel.html
Writing package binutils.html
Writing
package bison.html
Writing package byacc.html
Writing package bzr.html
Writing
package chrpath.html
Writing package cmake.html
Writing package
compat-gcc-44.html
Writing package compat-gcc-44-c++.html
Writing package
cscope.html
Writing package ctags.html
Writing package cvs.html
Writing package
dejagnu.html
Writing package diffstat.html
Writing package doxygen.html
Writing
package elfutils.html
Writing package expect.html
Writing package
flex.html
Writing package gcc.html
Writing package gcc-c++.html
Writing package
gcc-gfortran.html
Writing package gcc-gnat.html
Writing package
gcc-objc.html
Writing package gcc-objc++.html
Writing package
gettext.html
Writing package git.html
Writing package imake.html
Writing package
indent.html
Writing package intltool.html
Writing package
javapackages-tools.html
Writing package ksc.html
Writing package
libstdc++-docs.html
Writing package libtool.html
Writing package
make.html
Writing package mercurial.html
Writing package
mod_dav_svn.html
Writing package nasm.html
Writing package patch.html
Writing
package patchutils.html
Writing package perltidy.html
Writing package
pkgconfig.html
Writing package python-docs.html
Writing package rcs.html
Writing
package redhat-rpm-config.html
Writing package rpm-build.html
Writing package
rpm-sign.html
Writing package rpmdevtools.html
Writing package
rpmlint.html
Writing package subversion.html
Writing package swig.html
Writing
package systemtap.html
Writing package systemtap-sdt-devel.html
Writing package
systemtap-server.html
Writing group development.group.html
Writing package
authconfig-gtk.html
Writing package gnome-disk-utility.html
Writing package
gnome-packagekit.html
Writing package policycoreutils-gui.html
Writing package
setools-console.html
Writing package setroubleshoot.html
Writing package
system-config-kdump.html
Writing package system-config-kickstart.html
Writing
package system-config-users.html
Writing package
system-config-users-docs.html
Writing package wireshark-gnome.html
Writing group
graphical-admin-tools.group.html
Writing package authd.html
Writing package
cups-lpd.html
Writing package finger.html
Writing package
finger-server.html
Writing package ksh.html
Writing package mksh.html
Writing
package ncompress.html
Writing package rsh.html
Writing package
rsh-server.html
Writing package rusers.html
Writing package
rusers-server.html
Writing package rwho.html
Writing package talk.html
Writing
package talk-server.html
Writing package tcp_wrappers.html
Writing package
telnet.html
Writing package telnet-server.html
Writing package tftp.html
Writing
package xinetd.html
Writing package ypbind.html
Writing package
ypserv.html
Writing group legacy-unix.group.html
Writing package
atlas.html
Writing package fftw.html
Writing package fftw-devel.html
Writing
package fftw-static.html
Writing package gnuplot.html
Writing package
gsl-devel.html
Writing package lapack.html
Writing package
mpich-3.0-devel.html
Writing package mpich-3.2-devel.html
Writing package
mpitests-mvapich2.html
Writing package mpitests-openmpi.html
Writing package
mvapich2-2.0-devel.html
Writing package mvapich2-2.0-doc.html
Writing package
mvapich2-2.0-psm-devel.html
Writing package mvapich2-2.2-devel.html
Writing
package mvapich2-2.2-doc.html
Writing package
mvapich2-2.2-psm-devel.html
Writing package mvapich2-2.2-psm2-devel.html
Writing
package numpy.html
Writing package openmpi.html
Writing package
openmpi-devel.html
Writing package scipy.html
Writing package units.html
Writing
group scientific.group.html
Writing package aide.html
Writing package
hmaccalc.html
Writing package openscap.html
Writing package
openscap-utils.html
Writing package scap-security-guide.html
Writing package
scap-security-guide-doc.html
Writing package scap-workbench.html
Writing package
strongimcv.html
Writing package tncfhh.html
Writing package
tpm-quote-tools.html
Writing package tpm-tools.html
Writing package
tpm2-tools.html
Writing package trousers.html
Writing group
security-tools.group.html
Writing package coolkey.html
Writing package
esc.html
Writing package opencryptoki.html
Writing package opensc.html
Writing
package pam_pkcs11.html
Writing package pcsc-lite-ccid.html
Writing group
smart-card.group.html
Writing package conman.html
Writing package
crypto-utils.html
Writing package dump.html
Writing package
hardlink.html
Writing package lsscsi.html
Writing package mc.html
Writing
package mgetty.html
Writing package pexpect.html
Writing package
rdist.html
Writing package rear.html
Writing package rrdtool.html
Writing
package screen.html
Writing package scrub.html
Writing package
snapper.html
Writing package symlinks.html
Writing package
system-storage-manager.html
Writing package tree.html
Writing package
xdelta.html
Writing group system-admin-tools.group.html
Writing package
OpenIPMI.html
Writing package fence-agents-all.html
Writing package
freeipmi.html
Writing package freeipmi-bmc-watchdog.html
Writing package
freeipmi-ipmidetectd.html
Writing package ipmitool.html
Writing package
openhpi.html
Writing package watchdog.html
Writing group
system-management.group.html
Writing package 389-ds-base.html
Writing package
389-ds-base-libs.html
Writing group letter_3.group.html
Writing package
abattis-cantarell-fonts.html
Writing package abrt.html
Writing package
abrt-addon-ccpp.html
Writing package abrt-addon-kerneloops.html
Writing package
abrt-addon-pstoreoops.html
Writing package abrt-addon-python.html
Writing
package abrt-addon-vmcore.html
::
Traceback (most recent call last):
File
"/usr/bin/repoview", line 940, in <module>
main()
File
"/usr/bin/repoview", line 937, in main
Repoview(opts)
File
"/usr/bin/repoview", line 191, in __init__
packages =
self.do_packages(repo_data, group_data, pkgnames)
File "/usr/bin/repoview",
line 544, in do_packages
pkg_data = self.get_package_data(pkgname)
File
"/usr/bin/repoview", line 442, in get_package_data
rows =
pcursor.fetchall()
sqlite3.OperationalError: Could not decode to UTF-8 column
'location_href' with text ''
Updated by jrhodes about 7 years ago
+1 as well for CentOS 7 and CentOS 6 base repos. Still present in 2.14.1.
Feed URLS:
CentOS 7: http://mirror.centos.org/centos/7/os/x86_64/
CentOS 6: http://mirror.centos.org/centos/6/os/x86_64/
Important package versions:
repoview-0.6.6-4.el7.noarch
pulp-server-2.14.1-1.el7.noarch
python-pulp-client-lib-2.14.1-1.el7.noarch
python-pulp-repoauth-2.14.1-1.el7.noarch
pulp-rpm-plugins-2.14.1-1.el7.noarch
python-isodate-0.5.0-4.pulp.el7.noarch
python-kombu-3.0.33-8.pulp.el7.noarch
pulp-selinux-2.14.1-1.el7.noarch
python-pulp-bindings-2.14.1-1.el7.noarch
python-pulp-oid_validation-2.14.1-1.el7.noarch
python-pulp-common-2.14.1-1.el7.noarch
pulp-admin-client-2.14.1-1.el7.noarch
pulp-rpm-admin-extensions-2.14.1-1.el7.noarch
python-pulp-rpm-common-2.14.1-1.el7.noarch
Running on CentOS 7.4.1708
Updated by bmbouter over 5 years ago
- Status changed from NEW to CLOSED - WONTFIX
Updated by bmbouter over 5 years ago
Pulp 2 is approaching maintenance mode, and this Pulp 2 ticket is not being actively worked on. As such, it is being closed as WONTFIX. Pulp 2 is still accepting contributions though, so if you want to contribute a fix for this ticket, please reopen or comment on it. If you don't have permissions to reopen this ticket, or you want to discuss an issue, please reach out via the developer mailing list.