GNOME Bugzilla – Bug 571579
Evolution Core Dumps when creating a MAPI account
Last modified: 2010-03-29 07:01:04 UTC
This appears to be a different bug than http://bugzilla.gnome.org/show_bug.cgi?id=560757 I am running evolution from the Ubuntu Jaunty Jackalope repository, and compiled the evolution-mapi plugin from the Ubuntu PPA https://code.launchpad.net/~jelmer/evolution-mapi/ubuntu Versions: evolution - 2.25.90-0ubuntu2 evolution-data-server - 2.25.90-0ubuntu1 evolution-mapi - 0.25.91~svn110-0ubuntu1 libexchangemapi1.0-0 - 0.25.91~svn110-0ubuntu1 When I start evolution and try to create a MAPI account, it successfully logs into the server, and then immediately core dumps. The backtrace is below: GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu"... (no debugging symbols found) (gdb) handle SIG33 pass nostop noprint Signal Stop Print Pass to program Description SIG33 No No Yes Real-time event 33 (gdb) set pagination 0 (gdb) r Starting program: /usr/bin/evolution (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread 0x7f261df777e0 (LWP 4899)] ** (evolution:4899): DEBUG: Loading Exchange MAPI Plugin ** (evolution:4899): DEBUG: MAPI listener is constructed with 0 listed MAPI accounts ** (evolution:4899): DEBUG: mailto URL command: evolution %s ** (evolution:4899): DEBUG: mailto URL program: evolution [New Thread 0x7f2602b35950 (LWP 4910)] [Thread 0x7f2602b35950 (LWP 4910) exited] [New Thread 0x7f2602b35950 (LWP 4911)] [New Thread 0x7f25fbfff950 (LWP 4912)] Create profile with mark.stover XX server.domain.local libexchangemapi-Message: exchange-mapi-connection.c(2777): exchange_mapi_create_profile: lock(connect_lock) [Thread 0x7f2602b35950 (LWP 4911) exited] [New Thread 0x7f2602b35950 (LWP 4917)] [Thread 0x7f25fbfff950 (LWP 4912) exited] [Thread 0x7f2602b35950 (LWP 4917) exited] [New Thread 0x7f2602b35950 (LWP 4932)] [New Thread 0x7f25fbfff950 (LWP 4933)] [Thread 0x7f25fbfff950 (LWP 4933) exited] [Thread 0x7f2602b35950 (LWP 4932) exited] Unknown parameter encountered: "max log size" Ignoring unknown parameter "max log size" Unknown parameter encountered: "syslog" Ignoring unknown parameter "syslog" Unknown parameter encountered: "passdb backend" Ignoring unknown parameter "passdb backend" Unknown parameter encountered: "unix password sync" Ignoring unknown parameter "unix password sync" Unknown parameter encountered: "passwd program" Ignoring unknown parameter "passwd program" Unknown parameter encountered: "pam password change" Ignoring unknown parameter "pam password change" Unknown parameter encountered: "map to guest" Ignoring unknown parameter "map to guest" Unknown parameter encountered: "usershare allow guests" Ignoring unknown parameter "usershare allow guests" Unknown parameter encountered: "guest ok" Ignoring unknown parameter "guest ok" Unknown parameter encountered: "guest ok" Ignoring unknown parameter "guest ok" Logging into the server... succeeded libexchangemapi-Message: exchange-mapi-connection.c(146): exchange_mapi_connection_close: lock(connect_lock) Program received signal SIGSEGV, Segmentation fault.
+ Trace 212530
Thread 139801688242144 (LWP 4899)
Thread 1 (Thread 0x7f261df777e0 (LWP 4899))
The program is running. Exit anyway? (y or n) Not confirmed. (gdb) continue Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) quit
I should have mentioned that this is amd64, but it should be obvious from the registers.
Mark, Is this consistently reproducible ? And also what are the versions of openchange that you've installed?
Yes, this happens every time I try to add a MAPI account. I assume that the version of openchange is the libmapi? I have libmapi0 0.8.2 from the Ubuntu repository.
*** Bug 571686 has been marked as a duplicate of this bug. ***
I can consistently reproduce this bug as well. Since my environment is identical to Mark's (Ubuntu Jaunty, AMD64, etc) I'm not sure what additional information I can add. I'd be happy to do any additional debugging though.
I can reproduce this issue as well, running Jaunty in x86 land. After I uninstalled the PPA and compiled 0.25.90 from source it worked perfectly.
Which bits of 0.25.90? libexchangemapi and evolution-mapi?
I used libmapi-0.8-ROMULUS and evolution-mapi-0.25.90.
Hrm....I built evolution-mapi-0.25.91 from source and had the same behaviour. x86_64 though.
sorry, by same behaviour I mean "the same segfault"
Created attachment 129057 [details] Core Dump evolution core dump base 64 cleaned, not really useful
Created attachment 129058 [details] Core Dump evolution core dump base 64 cleaned, not really useful
Created attachment 129059 [details] debug of evolution during crash domain and server name cleaned
Created attachment 129060 [details] debug of evolution during crash domain and server name cleaned
I have the same bug. I've listed all the cases: 1. Opening evolution with no account setuped. the wizard is launched, exchange choosen, the crash occurs when click on "authenticate". (the first time you can authenticate, remember the password and the "OK" crash) 2. Creating an "empty" account. Edit account and set it to mapi (just a note, when you select server type Exchange mapi, the tab is changed to "Receiving options"). Authenticate crash like 1. 3. I don't know how but finally the account was created when i started evolution after a crash. I tried to deleted the account... Crash. On the next start the account was really suppressed. Ubuntu 9.10 amd64 alpha4, packages upgraded the 19 Feb, on vmware ESX 3.5 u3. Exchange 2007. mapi packages are from http://ppa.launchpad.net/jelmer/ppa/ubuntu evolution-mapi 0.25.91-svn110-0ubuntu1 libmapi0 0.8-2 evolution 0.25.91-0ubuntu1 eds 0.25.91-0ubuntu2 Attached debug from evolution and core dump Hope it will help
*** Bug 572873 has been marked as a duplicate of this bug. ***
I have same reproduction on i686 platform. Same bug reported in Ubuntu launchpad: https://bugs.launchpad.net/evolution-mapi/+bug/333855
Not tested yet. Fix is available in openchange r 1240. http://mailman.openchange.org/pipermail/devel/2009-February/001095.html
*** Bug 573330 has been marked as a duplicate of this bug. ***
I just updated openchange from svn/trunk. The problem is still there.
One other thing, manually running openchangeclient now doesn't core.
Just to be sure, I uninstalled openchange and evolution-mapi and then reinstalled. Evo-mapi still doesn't work (I see the folders but get an error when I try to visit one). Preferences->receive-authenticate still cores. Here's the backtrace: Distribution: Slackware Slackware 12.1.0 Gnome Release: 2.25.91 2009-02-17 (GARNOME) BugBuddy Version: 2.25.91 System: Linux 2.6.28.4 #27 SMP PREEMPT Mon Feb 9 16:51:39 EST 2009 i686 X Vendor: The X.Org Foundation X Vendor Release: 10402000 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: gnome GTK+ Modules: gnomebreakpad Memory status: size: 176381952 vsize: 176381952 resident: 55947264 share: 28438528 rss: 55947264 rss_rlim: 18446744073709551615 CPU usage: start_time: 1235759325 rtime: 3098 utime: 2814 stime: 284 cutime:1400 cstime: 49 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/opt/garnome-svn-2.25/bin/evolution' [?1034h[Thread debugging using libthread_db enabled] [New Thread 0xb63416c0 (LWP 21976)] [New Thread 0xb3900b90 (LWP 22168)] [New Thread 0xb2850b90 (LWP 22108)] 0xb6fde2a1 in waitpid () from /lib/libpthread.so.0
+ Trace 212967
Thread 1 (Thread 0xb63416c0 (LWP 21976))
----------- .xsession-errors (355951844 sec old) --------------------- iceauth: creating new authority file /home/ronis/.ICEauthority --------------------------------------------------
Is there any progress on this issue?
The problem is fixed in OpenChange since r1240 and is part libmapi-0.8.2 ROMULUS release changes. Updating to this version should fix the problem in evolution-mapi too. If it is not the case and the problem can be reproduced using openchange tools only (openchangeclient), please let me know. Note: Updating to libmapi-0.8.2 shouldn't conflict with evolution-mapi (No API changes) and is only a maintainer release: bug and memory leaks fixes. We are in the process of updating OpenChange for Debian and Ubuntu. However updating to Ubuntu may take longer because latest version of OpenChange relies on samba4-alpha7 release and Ubuntu has - afaik - frozen packages update.
I installed Debian's Samba 4.0.0 alpha7 (4.0.0alpha7-GIT-59cc0c0) I fetched, recompiled, and installed libmapi-0.8.2 ROMULUS from source. openchangeclient works. Commands like openchangeclient --database=.evolution/mapi-profiles.ldb --fetchmail work fine. evolution crashes after writing mapi-profiles.ldb, before saving preferences and showing the mailbox. It actually gets the mailbox list, and then segfaults. STDERR attached.
Created attachment 131833 [details] STDERR before crash
Does someone have tried the following combination: - evolution-mapi from trunk (r192) compiled with ./configure --prefix=/usr to get sure it overwrites existing evolution-mapi. - libmapi-0.8.2 release or openchange trunk - samba4-alpha7 release (make samba from openchange), but debian packages should work as well. With the combination above, evolution doesn't segfault when setting up MAPI profile nor when opening the mailbox or fetching emails. Can anyone reproduce the above configuration and confirm/refute the above statement?
I can (almost). I'm following evo-mapi from svn trunk inside a garnome build environments. Basically, things get installed in prefix=/opt/gnome, and that is moved to the head of LD_LIBRARY_PATH and PATH etc. This problem is fixed. Mapi on the other hand doesn't work here, cf. Bugs 577349 and, more importantly, 573984
Compiled evolution-mapi from SVN source (about 10 minutes ago) It's been running OK for the last 5 minutes. I can send e-mail to myself. I can view my calendar. No heavy use yet.
*** Bug 582253 has been marked as a duplicate of this bug. ***
*** Bug 585639 has been marked as a duplicate of this bug. ***
So what is the status of this bug? Do you need more information on this bug? Is there a fix released?
I think it's fixed.
Blocker - lots of duplicates in Launchpad.
*** Bug 592244 has been marked as a duplicate of this bug. ***
Is there a workaround for this?
*** Bug 596017 has been marked as a duplicate of this bug. ***
Even with Ubuntu 9.10, this is still an issue. Though, it doesn't seem to occur at the same point, it does segfault when trying to fetch mail. I'm running evolution 2.28.1-0ubuntu1 with evolution-mapi 0.28.0-0ubuntu1. Attached will be the latest evolution debug log and gdb stack dump.
Created attachment 146598 [details] GDB stack trace
Created attachment 146599 [details] Evolution debug log.
Randy, without debug info packages installed it's very hard to tell for sure what the problem is. But it definitely isn't "when creating a MAPI account", so it is not this bug. Try to update to evolution-mapi-0.28.1, as it's probably something similar as mentioned in this thread http://mail.gnome.org/archives/evolution-list/2009-October/msg00467.html ----- It seems the bug is still present, as was shown in bug #592244, where Siri has openchange.x86_64 0.8.2-2.fc11 evolution-mapi.x86_64 0.26.2-1.fc11 evolution.x86_64 2.26.3-1.fc11
(In reply to comment #41) > Randy, without debug info packages installed it's very hard to tell for sure > what the problem is. But it definitely isn't "when creating a MAPI account", so > it is not this bug. Try to update to evolution-mapi-0.28.1, as it's probably > something similar as mentioned in this thread > http://mail.gnome.org/archives/evolution-list/2009-October/msg00467.html Will do, Milan. Thanks!
Hrm, I have the same openchange on F11 (32bit) and I cannot reproduce this. If I recall correctly it was something with calling MAPIUninitialize twice, or similar, but neither that change triggers it. It might be something else. With respect of blocker/not blocker, I do not think a distro specific issue might be considered a blocker, as even one can see duplicates from other distros as well, then those are quite rare. Considering also reproducibility issues, I'm downgrading this to critical only.
evolution 2.28.2 + libmapi 0.9 I got a crash when i disabled mapi account from preferences.
+ Trace 220423
"t a a bt" should show what other threads are doing, other thread is probably doing something with the connection.
Traces provided by bug-buddy System: Linux 2.6.32-0.6.8-pae #1 SMP 2009-12-07 11:04:23 +0100 i686 X Vendor: The X.Org Foundation X Vendor Release: 10605000 Selinux: No Accessibility: Disabled GTK+ Theme: Gilouche Icon Theme: Gilouche GTK+ Modules: canberra-gtk-module, gnomebreakpad Memory status: size: 227516416 vsize: 227516416 resident: 44941312 share: 27078656 rss: 44941312 rss_rlim: 18446744073709551615 CPU usage: start_time: 1265381020 rtime: 795 utime: 707 stime: 88 cutime:16 cstime: 5 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/evolution.bin' [?1034h[Thread debugging using libthread_db enabled] [New Thread 0xab7c5b70 (LWP 25070)] [New Thread 0xaad3eb70 (LWP 25067)] [New Thread 0xad099b70 (LWP 25007)] [New Thread 0xaad7fb70 (LWP 15007)] [New Thread 0xad89ab70 (LWP 14961)] [New Thread 0xb12fdb70 (LWP 14960)] [New Thread 0xb1afeb70 (LWP 14958)] [New Thread 0xb22ffb70 (LWP 14957)] [New Thread 0xb4b9eb70 (LWP 14955)] [New Thread 0xb439db70 (LWP 14954)] 0xb60dbdbc in pango_default_break () from /usr/lib/libpango-1.0.so.0
+ Trace 220425
Thread 2 (Thread 0xab7c5b70 (LWP 25070))
Inferior 1 [process 14935] will be detached. Quit anyway? (y or n) [answered Y; input not from terminal] ---- Critical and fatal warnings logged during execution ---- ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ** Gtk **: gtk_tree_store_append: assertion `VALID_ITER (parent, tree_store)' failed ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ** Gtk **: gtk_tree_store_append: assertion `VALID_ITER (parent, tree_store)' failed ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ** Gtk **: gtk_tree_store_append: assertion `VALID_ITER (parent, tree_store)' failed ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ** Gtk **: gtk_tree_store_append: assertion `VALID_ITER (parent, tree_store)' failed ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ** Gtk **: gtk_tree_store_append: assertion `VALID_ITER (parent, tree_store)' failed ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ** Gtk **: gtk_tree_store_append: assertion `VALID_ITER (parent, tree_store)' failed ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ** Gtk **: gtk_tree_store_append: assertion `VALID_ITER (parent, tree_store)' failed ** Gtk **: gtk_tree_store_set_valist: assertion `VALID_ITER (iter, tree_store)' failed ----------- .xsession-errors (77 sec old) --------------------- Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". Could not read Gnome Bookmarks file /home/akhil/.gtk-bookmarks: Could not find file "/home/akhil/.gtk-bookmarks". --------------------------------------------------
@Milan: I should have provided feedback months ago on this one--I'm sorry. I found the latest evolution-mapi v0.28.2 from another bug ID and since installing, the segfault no longer occurs. I see that it's the latest package now available in the Ubuntu repos, too.
Thanks for the update. I had a chat with Jony, the maintainer, and he told me that there are few issues with calls of MAPIInitialized/MAPIUninitialize, so I will look at them and will try to make few changes there, based on my other chat with Kerihuel, an upstream developer of Openchange, whom agreed that it should be enough to call MAPIInitialize only once, and probably not call MAPIUninitialize at all, or at the end of the application only. Because Akhil is able to reproduce this at the moment, then I will cook a patch for testing here and we'll see.
Created attachment 153276 [details] [review] proposed ema patch for evolution-mapi; Please give a try to this. Thanks.
I just rebuilt openchange (rev 1711) and evolution-mapi to the git master. I then applied Mcrha's patch to evolution-mapi (in bug 571579), rebuilt and reinstalled, and then ran evolution --force-shutdown. On restart, I'm prompted for my mapi account passwords and end up in bug-buddy as soon as they're given. Here's the back-trace. Distribution: Slackware Slackware 12.2.0 Gnome Release: 2.29.6 2010-01-27 (GARNOME) BugBuddy Version: 2.28.0 System: Linux 2.6.32.7 #53 SMP PREEMPT Fri Jan 29 12:59:40 EST 2010 i686 X Vendor: The X.Org Foundation X Vendor Release: 10799003 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: gnome GTK+ Modules: gnomebreakpad Memory status: size: 255598592 vsize: 255598592 resident: 58884096 share: 26816512 rss: 58884096 rss_rlim: 18446744073709551615 CPU usage: start_time: 1265652771 rtime: 3126 utime: 2942 stime: 184 cutime:31 cstime: 2 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/opt/garnome-svn-2.29.5/bin/evolution' [?1034h[Thread debugging using libthread_db enabled] [New Thread 0xb5847710 (LWP 22718)] [New Thread 0xaafddb90 (LWP 22749)] [New Thread 0xacfddb90 (LWP 22743)] [New Thread 0xad7ddb90 (LWP 22742)] [New Thread 0xadfddb90 (LWP 22741)] [New Thread 0xaf261b90 (LWP 22733)] [New Thread 0xafa61b90 (LWP 22732)] [New Thread 0xb0261b90 (LWP 22731)] [New Thread 0xb1ccab90 (LWP 22730)] [New Thread 0xb24cab90 (LWP 22729)] 0xb595201d in poll () from /lib/libc.so.6
+ Trace 220482
Thread 6 (Thread 0xaf261b90 (LWP 22733))
I hope this is not the same, though no clue on that except of (on IRC sent): > ensure_mapi_init_called: lock(connect_lock) > ldb error (Unable to parse search expression) occurred searching for modules, > bailing out > Unable to load modules for td: Unable to parse search expression > ensure_mapi_init_called: unlock(connect_lock) from console, thus there is some issue with ldb here. The profile wasn't created when we removed it, but the above was printed.
Is there any progress on this issue, Evolution still crashes while creating a connection with outlook 2007 using Ubuntu 9.10 console errors: EI: MAIL PREFS** (evolution:7674): DEBUG: Loading Exchange MAPI Plugin ** (evolution:7674): DEBUG: MAPI listener is constructed with 0 listed MAPI accounts Create profile with naam DOMAIN SERVER libexchangemapi-Message: exchange-mapi-connection.c:3029: exchange_mapi_create_profile: lock(connect_lock) Aborted Installed packages: evolution 2.28.1-0ubuntu2 evolution-common 2.28.1-0ubuntu2 evolution-couchdb 0.3.2-0ubuntu2 evolution-data-server 2.28.1-0ubuntu1 evolution-data-server-common 2.28.1-0ubuntu1 evolution-data-server-dbg 2.28.1-0ubuntu1 evolution-dbg 2.28.1-0ubuntu2 evolution-documentation-en 2.28.1-0ubuntu2 evolution-exchange 2.28.1-0ubuntu1 evolution-indicator 0.2.4-0ubuntu3.1 evolution-mapi 0.28.2-0ubuntu1 evolution-plugins 2.28.1-0ubuntu2 evolution-plugins-experimental 2.28.1-0ubuntu2 evolution-webcal 2.28.0-0ubuntu1 libebackend1.2-0 2.28.1-0ubuntu1 libebook1.2-9 2.28.1-0ubuntu1 libecal1.2-7 2.28.1-0ubuntu1 libedata-book1.2-2 2.28.1-0ubuntu1 libedata-cal1.2-6 2.28.1-0ubuntu1 libedataserver1.2-11 2.28.1-0ubuntu1 libedataserverui1.2-8 2.28.1-0ubuntu1 libexchangemapi1.0-0 0.28.2-0ubuntu1 libmapi0 1:0.8.2+svn1423-1ubuntu1 libmapiadmin0 1:0.8.2+svn1423-1ubuntu1 openchangeclient 1:0.8.2+svn1423-1ubuntu1
(In reply to comment #52) > Is there any progress on this issue No, it isn't. (See comment #49 from yesterday)
(In reply to comment #51) > I hope this is not the same, though no clue on that except of (on IRC sent): > > ensure_mapi_init_called: lock(connect_lock) > > ldb error (Unable to parse search expression) occurred searching for modules, > > bailing out > > Unable to load modules for td: Unable to parse search expression > > ensure_mapi_init_called: unlock(connect_lock) > from console, thus there is some issue with ldb here. The profile wasn't > created when we removed it, but the above was printed. David, just for a record, the above particular issue is because of your latest libical (revision 985 - 991), as you found out. Feel free to re-try your MAPI account.
I just did and it seems to work (the GAL too). This has been a good day :)
(In reply to comment #49) > Created an attachment (id=153276) [details] [review] > proposed ema patch > > for evolution-mapi; > > Please give a try to this. Thanks. Patch doesn't seem to cause any regression. I didn't get any crash as well.
*** Bug 608232 has been marked as a duplicate of this bug. ***
*** Bug 607732 has been marked as a duplicate of this bug. ***
Thank you both for the testing. Created commit 3d38412 in ema master (0.29.91+) Created commit 54e97a6 in ema gnome-2-28 (0.28.3+)
*** Bug 609600 has been marked as a duplicate of this bug. ***