Bug 5465 - Bad: Перестал работать tkabber
: Bad: Перестал работать tkabber
Status: CLOSED NOTABUG
: Sisyphus
(All bugs in Sisyphus/tkabber)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2004-11-08 10:46 by
Modified: 2005-07-06 11:49 (History)


Attachments
workaround for conflict between tclx and memchan (415 bytes, patch)
2004-12-18 22:08, Sergey Vlasov
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-11-08 10:46:32
Перестал работать tkabber.
При запуске, после авторизации на сервере, выводит окошко 
Ошибка: wrong # args: should be ""
более детальное описание:
wrong # args: should be ""
wrong # args: should be ""
    while executing
"random 1000000000"
    (procedure "jid_to_tag" line 8)
    invoked from within
"jid_to_tag $jid"
    (procedure "winid" line 4)
    invoked from within
"winid [chatid $connid $jid]"
    (procedure "chat::change_presence" line 51)
    invoked from within
"chat::change_presence $connid $from $show"
    ("default" arm line 36)
    invoked from within
"switch -- $type {
	error -
	unavailable {
            if {[cequal $type unavailable]} {
	        presence_process_x $connid $from $type $x
	    }

	  ..."
    (procedure "client:presence" line 9)
    invoked from within
"client:presence 1 wkaban@jabber.pibhe.com/Work {} {{x {xmlns jabber:x:delay
from wkaban@jabber.pibhe.com/Work stamp 20041107T02:06:47} {} {} {} {}} {x..."
    ("uplevel" body line 1)
    invoked from within
"uplevel #0  [list client:presence $connid $from $type $x] $param"
    ("presence" arm line 62)
    invoked from within
"switch -- $tag {
	iq {
	    set useid   0
	    set id ""
	    set type [wrapper:getattr $vars type]

	    if {[wrapper:isattr $vars id] == 1} {
		set ..."
    (procedure "::jlib::parse1" line 25)
    invoked from within
"::jlib::parse1 1 {presence {from wkaban@jabber.pibhe.com/Work to
mrkooll@jabber.pibhe.com} {{status {} {} Online Online {}} {priority {} {} 1 1
{}} {x..."
    ("after" script)

Если проскипать эти диалоги - то tkabber запускается, но родстер пустой.
------- Comment #1 From 2004-11-11 03:10:55 -------
Хмм   у меня не воспроизводиться (впрочем не только у меня)  ...
после чего он перестал работать?
------- Comment #2 From 2004-11-29 13:30:13 -------
Перестал работать после обновления tcl (вроде).
Повторяется от нового пользователя.

Сервер jabberd версии 1.4.2

Клиент tkabber-0.9.7-alt2
tcl-8.4.7-alt2
------- Comment #3 From 2004-11-30 04:57:44 -------
вот тут есть два рецепта http://tkabber.jabber.ru/node/197

у меня проверить негде - тикл из поставки мастера 2.4 tcl-8.4.7-alt1

если получиться, пишите буду править пакет
------- Comment #4 From 2004-11-30 10:56:45 -------
Значит сделал почти как в этом совете.

Т.к. у меня нет Help->Show Tcl console в tkabber поставил я tkcon и подключился
к процессу tkabber.

После чего ввел команды. Получил тот-же облом:
Main console display active (Tcl8.4.7 / Tk8.4.7)
(mrkooll) 1 % package require Tclx
8.4
(mrkooll) 2 % random 1000000000
wrong # args: should be ""
(mrkooll) 3 % 
------- Comment #5 From 2004-12-02 15:51:50 -------
Значит так:
полная переустановка помогла.

Сносил tcl под корень (с выносом /usr/share/tcl и /usr/lib/tcl)

Потом переставил и он завелся. Видимо глюк был в обновлении tcl.

Т.е. делал так:
apt> remove tcl
apt> remove tcl-gpgme
apt> remove tcl-img
apt> remove tcl-sound
apt> commit
# rm -r /usr/share/tcl
# rm -r /usr/lib/tcl
apt> install tkabber
apt> install tcl-tkXwin
apt> install tcl-gpgme
....

Вроде все заработало.
------- Comment #6 From 2004-12-18 22:05:26 -------
Заработало, вероятно, из-за удаления пакета tcl-memchan. Наблюдается конфликт
между tcl-memchan и tclx - оба пакета создают процедуру с именем random. Причём
ни один из этих пакетов не обязателен для работы tkabber.

На самом деле для проявления ошибки достаточно наличия в системе только пакета
tcl-memchan - при отсутствии tclx tkabber определяет свою версию процедуры
random, которая потом портится новым memchan.
------- Comment #7 From 2004-12-18 22:08:17 -------
Created an attachment (id=674) [details]
workaround for conflict between tclx and memchan

Можно обойти проблему вот таким кривым способом - сразу при запуске попытаться
загрузить пакеты, чтобы Memchan загрузился раньше, и его random был перекрыт
определением или из Tclx, или из эмуляции в Tclx.tcl.
------- Comment #8 From 2005-07-06 04:11:35 -------
Не удалось воспроизвести
------- Comment #9 From 2005-07-06 11:49:56 -------
Да уже работает.

Как после полной переустановки тикля заработал так и работает до сих пор :)