ICS/Lotus (mostly), Linux, Travel, Skiing, Mixology, and Random Musing of Interest

Skype 4.3 on Linux Crashing? Here’s a Fix.

Bill Malchisky  August 5 2014 05:00:00 AM
Microsoft released Skype 4.3 on Linux recently, to replace the aging version 4.2 due to cloud conversions utilized in other client flavors. There are some noticeable changes with the upgrade including new features. However, for power Skype users, there appears to exist a bug in the upgrade process causing the new Skype client to crash repeatedly just after the main window appears.

Although conjecture, I suspect the problem manifests itself for those that have sent files to one or more contacts in version 4.2. Skype utilizes a SQLite database file to store its data with the filename main.db. Something changed with how 4.3 reads the sent file history, causing the client to crash immediately. After searching forums for hours and trying ten different variants for fixes, the simplest one was the winner for me and allowed the successful opening of Skype once again. Non-English Skype flavors can exhibit the upgrade issue too.

Notations

A. The solution provided purges the sent file history, but retains your message history
B. Message type 68 equates "Send file"


The Solution

Here is the fix that worked for my Ubuntu 12.04 LTS x64 host OS. The process utilizes sqlite3 which is the command-line front-end to SQLite.

1. Check to see if you have sqlite3 installed
$ which sqlite3

/usr/bin/sqlite3


2. If not, then install it
Ubuntu

$ sudo apt-get install sqlite3


Red Hat, CentOS, SUSE

$ su -

# yum install sqlite


Try step one again to ensure the system finds the executable

3. Inside your home directory is a hidden subdirectory containing all of the Skype files for your user account. It is important to backup this directory
$ cd ~

$ mkdir .Skype.4.2.bak; cp -a .Skype/ .Skype.4.2.bak


4. This is where you need to go to perform the fix
$ cd ~/.Skype/[skype_username]


Note: if you do not recall the Skype account name on this machine, type: ls ~/.Skype/

5. Edit the database file
$ sqlite3 main.db


6. Clean-up the database
Sqlite> DELETE FROM Message WHERE type=68

Sqlite> .quit


UPDATE [20 Aug 2014] - on some non-US Skype clients, the table name is plural; thus change this line to "sqlite> DELETE FROM Messages WHERE type=68"

7. Verify Skype is installed (one way of several); if not, see Installing Skype below
$ which skype

/usr/bin/skype


8. Launch to ensure success
$ skype &


Nice and easy.

Of course, one could do the brute force method by removing the Skype folder and installing a new version, and reinstalling the Skype dependencies, but you would lose all your settings, plus your chat history, which may or may not be downloadable from the Skype server -- but the pull could take a long time for heavy users. I found the provided option much safer, less invasive, and fast.


Installing Skype

If you haven't installed Skype yet, know that it is part of the Canonical partner repository and needs to be enabled to have it automatically appear within the Software Center. Two ways to do that:
1. Check the respective repository within the Update Manager -> Settings dialog box
2. $sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"

The application will appear within the Software Center or you can install it as follows:
$sudo apt-get update && sudo apt-get install skype


You can always visit the Skype Linux download site or the generic download site, but this will take longer than the two steps provided.

Notations

C. For current Linux versions, Microsoft only offers an i386 flavor, so do not waste time searching for the x64 code
D. Skype dropped Alsa support in version 4.3 and requires PulseAudio for making phone calls; if you only use chat or share files and photos, then you do not care and need not configure it; if you need help installing PulseAudio, see below


Additional Reading

* If you want to decode the Skype log file, try Skype Log Converter, which takes your Skype messages and converts them into .eml files
* Whereas Skype Chat Log Viewer publishes clean human readable Skype logs
* Troubleshooting Skype on Ubuntu
* If you want to merge two Skype main.db files, try Skyperious, a neat Python utility
* To install PulseAudio, read this post on the Skype support site
* With the current release, there is no known bug tracking site anymore for submitting bugs to Microsoft/Skype; the previous Skype bug tracking dashboard is offline. Instead, I would suggest visiting the Skype for Linux Community site and trying there
* If you need to make a log file to troubleshoot a problem, click here then scroll down to Skype for Linux, which provides a simple step by step process
Comments

1Richard Moy  8/5/14 8:24:36 AM  Skype 4.3 on Linux Crashing? Here’s a Fix.

Bill,

Thanks for figuring it out and letting us newbies continue to use Skype with Linux instead of having to using Windows

Richard

2Ray Bilyk  8/5/14 9:13:28 AM  Skype 4.3 on Linux Crashing? Here’s a Fix.

In step 6, should there be a semicolon at the end of the first command?

3Bill Malchisky  8/5/14 2:22:52 PM  Skype 4.3 on Linux Crashing? Here’s a Fix.

@1 - You are welcome. Thanks for the kind words, Richard.

@2 Ray, no semicolon needed with Sqlite3 in that case. Appreciate the question, sir.

4Alex Ng  8/5/14 7:31:00 PM  Skype 4.3 on Linux Crashing? Here’s a Fix.

Thanks for this. I'm using Ubuntu 12.04 32-bit and the SQL that worked for me was:

DELETE FROM Messages WHERE type=68;

Seems on my version, the 'Message' table is actually 'Messages'.

All working now.

5Robert  8/8/14 6:28:50 AM  Skype 4.3 on Linux Crashing? Here’s a Fix.

Hello Bill,

When I type this below:

Sqlite> DELETE FROM Message WHERE type=68

it is ending with doing nothing and displaying:

...>

Here evenif I write .quit then also nothing happens.

Please help.

Thank you,

6Bill Malchisky  8/8/14 10:18:41 AM  Skype 4.3 on Linux Crashing? Here’s a Fix.

@Robert - That is the correct behavior. SQlite is an RDBMS, so you type a command into the front-end and it performs the command. Typing ".quit" should just return you to the Linux command line. If you are seeing a different type of behavior, please send me a screen shot. Thanks.

7Bill Malchisky  8/20/14 4:00:56 AM  Update Published

Update added to Step 6, above.

Thank you to Alex here and Patrick for indicating the additional table nomenclature permutation.

8archinho  8/27/14 5:33:24 AM  Skype 4.3 on Linux Crashing? Here’s a Fix.

Works for me. Thanks. ;)

9Grynium  9/1/14 3:53:40 AM  Skype 4.3 on Linux Crashing? Here’s a Fix.

Bill,

your solution works perfectly on my CentOS 6.5 x86_64. Thank you very much for your help!

Best regards,

Grynium

10Bill Malchisky  9/1/14 5:21:18 PM  Skype 4.3 on Linux Crashing? Here’s a Fix.

@8, 9 - Thanks for letting me know it helped. Glad to be of assistance. Cheers.

Powered by IBM Lotus Domino 8 | Lotus User Group | Get Firefox! | This blog is listed on Planet Lotus   IBM Certified

© 2010 William Malchisky.