urllib пытается сделать:
b'a,b'.split(',')
Что не работает. байтовые строки и строки юникода смешиваются в Py3k еще менее плавно, чем раньше - намеренно, чтобы проблемы кодирования шли не так, как раньше, а не позже.
Таким образом, ошибка довольно непрозрачно говорит вам: «Вы не можете передать строку байта в urllib.parse». Предположительно, вы выполняете запрос POST, где закодированная строка входит в cgi как тело содержимого; тело содержимого по-прежнему является байтовой строкой / потоком, поэтому теперь оно конфликтует с новым urllib.
Так что да, это ошибка в cgi.py, еще одной жертве преобразования 2to3, которая не была исправлена должным образом для новой строковой модели. Это должно быть преобразование входящего потока байтов в символы перед передачей их в urllib.
Я упоминал, что библиотеки Python 3.0 (особенно связанные с сетью) все еще довольно шумен? : -)