{"id":1079,"date":"2013-09-23T16:38:34","date_gmt":"2013-09-23T15:38:34","guid":{"rendered":"http:\/\/www.wrigley.me.uk\/wp\/?p=1079"},"modified":"2013-09-23T16:38:34","modified_gmt":"2013-09-23T15:38:34","slug":"webex-on-64-bit-fedora-19","status":"publish","type":"post","link":"https:\/\/www.wrigley.me.uk\/2013\/09\/webex-on-64-bit-fedora-19\/","title":{"rendered":"Webex on 64-bit Fedora 19"},"content":{"rendered":"

It’s hard to believe that 32\/64-bit compatibility is still an issue in this day an age. I’d hoped it would be plain sailing by now.<\/p>\n

But no.<\/p>\n

I use Webex at work, and at some point it and\/or java stopped working. I kind of lost track of what I’d done before, but decided I wanted the “pure” solution or none at all (64-bit OS, therefore 64-bit firefox and 64-bit java). I failed to get it working, so resorted to running it in a Windows 7 VM in VirtualBox (works perfectly, of course).<\/p>\n

I decided to spend a little more time on it, and with the latest java and firefox (jre-1.7.0_40 and firefox-24.0-1), the applet side of things “Just Worked”, i.e.:<\/p>\n

http:\/\/java.com\/en\/download\/installed.jsp?detect=jre&try=1<\/a> reports “Congratulations! You have the recommended Java installed (Version 7 Update 40).”<\/p>\n

To get this far, install the latest jre RPM (http:\/\/www.java.com\/en\/download\/linux_manual.jsp?locale=en)<\/p>\n

\n# rpm -Uvh jre-7u40-linux-x64.rpm\n# \/usr\/sbin\/alternatives --install \/usr\/bin\/java java \/usr\/java\/default\/bin\/java 20000\n# \/usr\/sbin\/alternatives --config java\n\nThere is 2 program that provides 'java'.\n\n  Selection    Command\n-----------------------------------------------\n*+ 1 \/usr\/lib\/jvm\/java-1.7.0-openjdk-1.7.0.60-2.4.2.0.fc19.x86_64\/jre\/bin\/java\n   2           \/usr\/java\/default\/bin\/java\n\nEnter to keep the current selection[+], or type selection number: 2 \n<\/pre>\n

Symlink the java plugin to somewhere appropriate (I chose my home directory):<\/p>\n

\n$ ln -s \/usr\/java\/default\/lib\/amd64\/libnpjp2.so ~\/.mozilla\/plugins\/\n<\/pre>\n

And restart firefox.<\/p>\n

However, starting a Webex would work to a point, but I couldn’t see anything I entered into the chat box, or any response (although both show up on a working client at the other “end”).<\/p>\n

I’d got the java console running and googled around on some of the errors I was seeing.<\/p>\n

This got me this page:<\/p>\n

http:\/\/www.emsperformance.net\/2013\/03\/25\/making-webex-work-on-64bit-fedora-core-18\/<\/a><\/p>\n

This implied that installing the 64-bit version of the pangox-compat RPM would help. I already had that. In desperation, I tried installing the i686 version, too. No improvement in symptoms.<\/p>\n

After poking around some more, using this error:<\/p>\n

\nLoading native DBR...\njava.lang.UnsatisfiedLinkError: \/home\/jwrigley\/.webex\/1224\/libdbr.so: \/home\/jwrigley\/.webex\/1224\/libdbr.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch\n<\/pre>\n

I found that there are a bunch of files pulled down by the applet (I presume?) into ~\/.webex\/1224\/, which are 32-bit (I don’t know if the number, here 1224, differs on other systems).<\/p>\n

\n$ file .webex\/1224\/*.so\n.webex\/1224\/atascli2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped\n.webex\/1224\/atascli.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped\n.webex\/1224\/atgzip.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped\n...\n<\/pre>\n

More googling brought little hope. The consensus appeared to be that the only solution is to run 32-bit firefox and java. *spit*<\/p>\n

Tenacity, or pigheadedness, forced me to have one more try.<\/p>\n

As described in the link above, I straced the java process once I’d started a conference. This opened a lot of threads.<\/p>\n

I noticed that the strace process would report, when I clicked “Share My Desktop”, something like this:<\/p>\n

\nProcess 1004 attached\n[ Process PID=1004 runs in 32 bit mode. ]\n<\/pre>\n

That saved me some time in grepping, as I opened the strace log for that process and right at the bottom:<\/p>\n

\n15:16:16 writev(2, [{\"\/home\/jwrigley\/.webex\/1224\/atasj\"..., 34}, {\": \", 2}, {\"error while loading shared libra\"..., 36}, {\": \", 2}, {\"libXmu.so.6\", 11}, {\": \", 2}, {\"cannot open shared object file\", 30}, {\": \", 2}, {\"No such file or directory\", 25}, {\"\\n\", 1}], 10) = 145\n<\/pre>\n

I had libXmu.so.6 in \/usr\/lib64, so I figured it couldn’t hurt to try installing the 32-bit version:<\/p>\n

\n# yum install libXmu.i686\n<\/pre>\n

Tried again, and still not working, but the new thread had a different error, this time libXt.<\/p>\n

I followed this cycle a couple of times, installing 32-bit versions of libXt, libXmu and gtk2 (for libgtk-x11-2.0.so.0), and lo! I got a popup telling me I was sharing my desktop. Unfortunately, I couldn’t see my desktop on the other client, but when I shared that desktop, I could see it on my local machine.<\/p>\n

The packages I installed, as a one-liner:<\/p>\n

\n# yum install pangox-compat.i686 libXt.i686 libXmu.i686 gtk2.i686\n<\/pre>\n

(the last one pulls down quite a few dependencies.<\/p>\n

The problem with the chat appears to have come along with the newer java, as there are claims that it’s fixed by rolling back. The associated error\/traceback is:<\/p>\n

\nchat component version = 2011.01.29.1101\nResource: atlchat\nResource: atlchat_en\nResource: atlchat_en_US\nException in thread \"AWT-EventQueue-3\" java.lang.IllegalStateException: This function should be called while holding treeLock\nat java.awt.Component.checkTreeLock(Unknown Source)\nat java.awt.Container.validateTree(Unknown Source)\nat ChatControlPane.access$100(ChatControlPane.java:61)\nat ChatControlPane$1$1.run(ChatControlPane.java:120)\nat java.awt.event.InvocationEvent.dispatch(Unknown Source)\nat java.awt.EventQueue.dispatchEventImpl(Unknown Source)\nat java.awt.EventQueue.access$200(Unknown Source)\nat java.awt.EventQueue$3.run(Unknown Source)\nat java.awt.EventQueue$3.run(Unknown Source)\nat java.security.AccessController.doPrivileged(Native Method)\nat java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)\nat java.awt.EventQueue.dispatchEvent(Unknown Source)\nat java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)\nat java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)\nat java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)\n<\/pre>\n

So, only a partial fix, but at least I can view somebody else’s shared desktop from the comfort of my own browser, which is about 90% of my use-case.<\/p>\n","protected":false},"excerpt":{"rendered":"

It’s hard to believe that 32\/64-bit compatibility is still an issue in this day an age. I’d hoped it would be plain sailing by now. But no. I use Webex at work, and at some point it and\/or java stopped working. I kind of lost track of what I’d done before, but decided I wanted\u2026 Read More »<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[8],"tags":[63,81,91,145],"class_list":["post-1079","post","type-post","status-publish","format-standard","hentry","category-geek","tag-fedora","tag-java","tag-linux","tag-webex"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9qMPF-hp","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/posts\/1079"}],"collection":[{"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/comments?post=1079"}],"version-history":[{"count":0,"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/posts\/1079\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/media?parent=1079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/categories?post=1079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wrigley.me.uk\/wp-json\/wp\/v2\/tags?post=1079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}