Showing posts with label Error. Show all posts
Showing posts with label Error. Show all posts

Friday, January 28, 2011

IE throw null object exception when flash call javascript function

用open flash chart第一次正常载入一个图表到页面之后,当使用jQuery.fn.empty()方法移除此图表时,IE中会抛出一个错误,其他浏览器都是正常的,内容如下:


JScript - script block, line 1 character 124
'null' is null or not an object

通过IE8的debug工具可以看到出错时,javascript正在执行的代码如下:

try { document.getElementById("report-charts").SetReturnValue(__flash__toXML(ofc_resize([66,-96,66,-87])) ); } catch (e) { document.getElementById("report-charts").SetReturnValue("<undefined/>"); }

这个并不是页面中的javascript代码,应该是flash中调用外部javascript方法时,所使用的javascript代码,在IE8中断点调试,可以发现document.getElementById("report-charts")的结果为null,所以抛出了以上错误。
避过此问题的办法是在陊除已经载入的图表时,不调用jQuery.fn.empty()方法,而是直接使用jQuery.fn.html(''),将flash所在父元素的内容置空:

$('#report-charts').parent().html('');
// 如果使用$('#report-charts').parent().empty();在IE中则会报错
// ... 重新生成report-charts对象并载入新的flash图表
swfobject.embedSWF(ofc, "report-charts", "100%", "300", "9.0.0", "expressInstall.swf", {"get-data":"get_chart_0"});

Thursday, January 27, 2011

sqlite3 database disk image is malformed

sqlite3 报错提示: database disk image is malformed

看提示意思是指数据库的数据文件格式发生异常,所以数据查询和写入不正常,在网上google了一些文章,找到了一个解决方法。
一般来说,sqlite3的数据文件发生这个问题,想直接修复数据是行不通了,
在进入sqlite3后的命令行中,运行以下命令:
PRAGMA integrity_check
*** in database main ***
On tree page 120611 cell 0: 3 of 4 pages missing from overflow list starting at 120617
On tree page 120616 cell 0: 3 of 4 pages missing from overflow list starting at 120621
On tree page 3309 cell 0: 3 of 4 pages missing from over

假设原数据库名: abc.db

运行命令:
$> sqlite3 abc.db

.output "data.sql"
.dump
.quit

再建个新数据库 abcd.db
$> sqlite3 abcd.db

然后

.read "data.sql"
.quit

然后修复原来的数据库名和文件权限,应该就没事了。

References: sqlite3 database disk image malformed

Open Flash Chart IO ERROR Loading test data Error #2032

在IE6中使用open flash chart2加载图表的json数据时,第一次载入数据,图表渲染正常,第二次就会报一个错误,提示数据加载错误:


Open Flash Chart
IO ERROR
Loading test data
Error #2032

而在其他的浏览器,如IE8/firefox/chrome中都是正常的,在网上搜索了一些回答,其中有人提到说这是因为浏览器的缓存造成的问题,只要在用swfobject加载open-flash-chart.swf时,在url后面加上一个动态参数,让浏览器不要使用本地缓存:

swfobject.embedSWF("open-flash-chart.swf?t=" + (new Date()).getTime(), "charts-div-id", "100%", "300", "9.0.0", "expressInstall.swf", {"get-data":"get_chart_0"});


References: Open Flash Chart IO ERROR Loading test data Error #2032

Monday, May 24, 2010

mysqlbinlog Ver 3.3和3.1版本之间的输出差异

mysqlbinlog Ver 3.3中多了一个--base64-output参数,默认值为auto:


--base64-output[=name]
Determine when the output statements should be
base64-encoded BINLOG statements: 'never' disables it and
works only for binlogs without row-based events; 'auto'
is the default and prints base64 only when necessary
(i.e., for row-based events and format description
events); 'always' prints base64 whenever possible.
'always' is for debugging only and should not be used in
a production system. The default is 'auto'.
--base64-output is a short form for
--base64-output=always.

在原来的Ver3.1版本中没有此参数,对比mysql5.0生成的日志文件的输出结果:
Ver3.1版本中使用mysqlbinlog输出结果:

shell> mysqlbinlog mysql-bin.000182|less
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#100515 1:38:58 server id 25 end_log_pos 98 Start: binlog v 4, server v 5.0.37-log created 100515 1:38:58
# at 98

Ver3.3版本中使用mysqlbinlog输出结果:

shell> mysqlbinlog --base64-output=never mysql-bin.000182|less
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#100515 1:38:58 server id 25 end_log_pos 98 Start: binlog v 4, server v 5.0.37-log created 100515 1:38:58
# at 98

shell> mysqlbinlog --base64-output=auto mysql-bin.000182|less
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#100515 1:38:58 server id 25 end_log_pos 98 Start: binlog v 4, server v 5.0.37-log created 100515 1:38:58
BINLOG '
sortSw8ZAAAAXgAAAGIAAAAAAAQANS4wLjM3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAASwAEGg==
'/*!*/;
# at 98

从上面结果比较而言,相当于3.1版本的mysqlbinlog的base64-output参数默认为never。
在mysql 5.0中带的mysqlbinlog一般为3.1版本的,而mysql5.1版本中带的mysqlbinlog则为3.3版本,如果需要将mysql5.0生成的日志文件导入mysql5.1时,需要将mysqlbinlog的base64-output值设置为never。如果不设置此参数,导入日志时,会在
BINLOG 'sortSw8ZAAAAXgAAAGIAAAAAAAQANS4wLjM3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAASwAEGg=='

处报SQL语法错误。

MySQL5 slave同步报错(server_errno=1236)

100519 19:35:33 [Note] Slave I/O thread: connected to master 'repl@master:3306', replication started in log 'mysql-bin.000176' at position 615525147

100519 19:35:33 [ERROR] Error reading packet from server: Could not find first log file name in binary log index file ( server_errno=1236)

从日志信息上可知,slave已经连接到master,并且准备从指定的binlog文件指定位置开始同步,但后面错误提示日志文件找不到,而master服务器上日志文件是存在的。
这种情况有二种处理方法:
一、重启主数据库(master)之后,然后slave上stop slave;start slave,再检查同步的状态。
二、不重启主服务器,则用mysqlbinlog根据start-position或者start-datetime,将日志分析出来后,将分析结果在slave上用mysql命令导入,导入完成后,再用CHANGE MASTER TO语句,从下一个日志文件MASTER_LOG_POSITION=98开始同步。

另外在使用mysqlbinlog工具进行日志导入时,需要注意以下问题,下面内容转自MySQL官方手册:
如果MySQL服务器上有多个要执行的二进制日志,安全的方法是在一个连接中处理它们。下面是一个说明什么是不安全的例子:

shell> mysqlbinlog hostname-bin.000001 | mysql # DANGER!!
shell> mysqlbinlog hostname-bin.000002 | mysql # DANGER!!

使用与服务器的不同连接来处理二进制日志时,如果第1个日志文件包含一个CREATE TEMPORARY TABLE语句,第2个日志包含一个使用该临时表的语句,则会造成问题。当第1个mysql进程结束时,服务器撤销临时表。当第2个mysql进程想使用该表时,服务器报告 “不知道该表”。

要想避免此类问题,使用一个连接来执行想要处理的所有二进制日志中的内容。下面提供了一种方法:

shell> mysqlbinlog hostname-bin.000001 hostname-bin.000002 | mysql -u root -ppassword

Reference: http://yuweijun.blogspot.com/2009/12/mysql50.html

Thursday, December 10, 2009

MySQL5 Replication fails with "log event entry exceeded max_allowed_packet"

配置文件中有二个参数设置需要注意,max_allowed_packet在主从服务器上的设置最好是设置相同,并且将read_buffer_size <= max_allowed_packet。 
如果这二个配置正确,仍然报错,则需要STOP SLAVE; 并CHANGE MASTER TO,调整master_log_pos的值,这个值与服务器的日志文件要对应上。
Reference: http://bugs.mysql.com/bug.php?id=15937
http://bugs.mysql.com/bug.php?id=8215

Thursday, January 08, 2009

stack level too deep in will_paginate

After update rails from 1.2.5 to 2.2.2, get below exception:
stack level too deep
../vendor/plugins/will_paginate/lib/will_paginate/finder.rb:81:in `method_missing_without_paginate'
../vendor/plugins/will_paginate/lib/will_paginate/finder.rb:82:in `method_missing'

solution, update will_paginate:
$> script/plugin install git://github.com/mislav/will_paginate.git

Tuesday, December 16, 2008

rails error ActionController::InvalidAuthenticityToken

升级到Rails 2.2.2后,在用户登录时抛出以上错误,因为Rails新版本对安全控制做了一些加强措施,只要在form中添加<%= token_tag %>即可,Rails会添加一个token(在action中的form_authenticity_token方法生成这个token)在form中,随表单一起提交,可以适当的防止一些web攻击。
<input name="authenticity_token" type="hidden" value="d688e6bf60f43bd171504e059de1ba03f876d129" />
具体可参考 ActionController::RequestForgeryProtection 和 config/environment.rb 中的配置说明:
# Your secret key for verifying cookie session data integrity.
# If you change this key, all old sessions will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
config.action_controller.session = {
:session_key => '_sv3_session',
:secret => 'b35a7a9ffb88288f11c03b0c24fe45f90879d8fbb83f9ba70649b489d8165f06d4484dd07c6e41c2d9616630781fd739a127d1285c589db3d77801afd30a9d35'
}

Monday, December 15, 2008

mongrel and rails 2.2.2 环境下报 mysql lib 的错误及解决方法

Processing Rails::InfoController#properties (for 127.0.0.1 at 2008-12-15 17:10:53) [GET]

LoadError (dlopen(/Library/Ruby/Site/1.8/universal-darwin9.0/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.15.dylib
Referenced from: /Library/Ruby/Site/1.8/universal-darwin9.0/mysql.bundle
Reason: image not found - /Library/Ruby/Site/1.8/universal-darwin9.0/mysql.bundle):
/Library/Ruby/Site/1.8/universal-darwin9.0/mysql.bundle
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'

在MAC OSX 10.5 和 mysql 5.1.23-rc 上,rails 2.2.2 用 mongrel server 启动时访问首页mysql连接属性时抛出以上错误,在对应的/usr/local/mysql/lib下根本没有/usr/local/mysql/lib/libmysqlclient.15.dylib这个文件,当然会加载失败,之前在 rails 2.0.2 上倒没有碰到过这个问题。从mysql官网重新下载了一个 mysql 5.0.67,从其下面拷了一个libmysqlclient.15.dylib 到 /usr/local/mysql/lib/libmysqlclient.15.dylib,就可以解决此问题。
$> sudo cp /usr/local/mysql5/lib/libmysqlclient.15.dylib /usr/local/mysql/lib/libmysqlclient.15.dylib

Monday, December 08, 2008

MySQL5.0 同步错误 errno 2013 及解决方法

081208 11:28:29 [ERROR] Slave I/O thread: error connecting to master 'repl@server:3306': Error: 'Lost connection to MySQL server at 'reading initial communication packet', system error: 113' errno: 2013 retry-time: 60 retries: 86400

主要是因为slave连接不到master,可以从以下几点着手解决:
1. iptables是否将对应的master db port给禁了?
2. master db server 是否能够上网? slave db server 是否能够上网?

Sunday, November 16, 2008

textarea 标签关闭方式不正确造成的问题

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>textarea 标签关闭方式差异</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<table>
<tr>
<td>Description 1: 使用正常的textarea关闭标签(&lt;/textarea&gt;)</td>
<td>
<textarea class="textfield" style="width: 350px;" rows="6" name="description1"></textarea>
</td>
</tr>
<tr>
<td>Description 2: xml方式关闭textarea标签时,safari/firefox/opera都会出现渲染问题,textarea后面的全部内容都会被视作textarea的内容。IE未测试。</td>
<td>
<textarea class="textfield" style="width: 350px;" rows="6" name="description2"/>
</td>
</tr>
<tr>
<td>Description 3: </td>
<td>
<textarea class="textfield" style="width: 350px;" rows="6" name="description3"></textarea>
</td>
</tr>
</table>
</body>
</html>

Friday, November 14, 2008

discuz! 整站空白解决方法

将forumdata/cache和forumdata/templates下面的文件删除重建缓存。

Sunday, October 05, 2008

Firebug command line api 和 console api 中比较常用到的几个方法

1. $(id) 与 prototype 用法类似,只能传字符串的Element Id。
2. $$(selector) 与 prototype 用法类似,传一个CSS Selector字符串,另专门还有一个$x("xPath")方法接受xpath方式查询DOM节点。
3. dir(object) 遍历object所有属性,在console中打印出来。
4. clear() 清空console。
5. debug(fn) 在对应的fn方法第一行加一个断点,当此方法调用时就会进入此方法第一行,可进行断点调试此方法。对应的有undebug(fn)取消断点。

6. console.log(object[, object, ...]),console是Firebug在Firefox中添加的一个全局变量名。其log()方法会将对象打印到firebug控制台中,支持类似printf()的功能。
7. 同console.log()类似的还有console.debug(),console.info(),console.warn(),console.error()方法。
8. console.assert(expression[, object, ...])断言功能,用来检查表达式是否正确执行。

Reference: http://getfirebug.com/commandline.html
http://getfirebug.com/console.html

Saturday, September 27, 2008

MySQL Replication server_errno=2020

080927 15:28:42 [Note] Slave: connected to master 'test@localhost:3306',replication resumed in log 'mysql-bin.000003' at position 34699088
080927 15:28:42 [ERROR] Error reading packet from server: Got packet bigger than 'max_allowed_packet' bytes ( server_errno=2020)
080927 15:28:42 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000003' position 34699088
080927 15:28:42 [Note] Slave: connected to master 'test@localhost:3306',replication resumed in log 'mysql-bin.000003' at position 34699088


$> vi /etc/my.cnf
# max_allowed_packet = 1M # modify it to
max_allowed_packet = 10M

Friday, August 15, 2008

MySQL server_errno=1236 problem and resolution


mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: test
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000045
Read_Master_Log_Pos: 78736775
Relay_Log_File: localhost-relay-bin.000032
Relay_Log_Pos: 78736912
Relay_Master_Log_File: mysql-bin.000045
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB: search_production,dw_am
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 78736775
Relay_Log_Space: 78736912
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
1 row in set (0.00 sec)

Check mysql error log file, get below error info:
080815 12:13:44 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)
080815 12:13:44 [ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log
080815 12:13:44 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000045', position 78736775

Because master bin log file size is 78736164, but slave want to read 78736775, cause mysql 1236 error number, This problem caused by log flush exception.

-rw-rw---- 1 mysql mysql 78736164 Aug 15 10:18 mysql-bin.000045

This problem can be resolved using below method:

mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_LOG_FILE=[NEXT BIN LOG FILE], MASTER_LOG_POS=98;
mysql> START SLAVE;

[NEXT BIN LOG FILE] is 'mysql-bin.000046' in this problem, MASTER_LOG_POS value is always 98 or 4.

Wednesday, July 09, 2008

在调用actionLink组件中碰到的关于hibernate的连接错误

在tapestry5中做一个页面时碰到如下错误:
只要在这个页面中有使用actionLink组件并且传入了context值的时候,会涉及对应的ValueEncoder,程序总是会去通过org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource去找hibernate.xml.cnf这个默认的配置文件去连接数据库。
当这个hibernate.xml.cnf文件里的配置不能连上数据库时就会在连接超时之后抛出以下错误,之后页面会正常显示,以后再次访问此页面就不会再连接数据库了,页面也是即时刷出来。如果配置文件能够连接上数据库,则会抛出下面第一行的[WARN]信息,连接不会超时,所以页面访问也不会受到影响。

[WARN] cfg.AnnotationBinder Package not found or wo package-info.java: com.test.www.entities
[WARN] cfg.SettingsFactory Could not obtain connection metadata
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: java.net.ConnectException: Operation timed out

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Operation timed out
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2666)
at com.mysql.jdbc.Connection.(Connection.java:1531)
....
at org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(HibernateModule.java:149)
....

Wednesday, May 21, 2008

ruby script/server lighttpd

在一个jruby on rails目录下面运行以下命令时报错:
$> ruby script/server lighttpd
.....
Couldn't find any pid file in '/Users/yu/Sites/RubyOnRails/tmp/pids' matching 'dispatch.[0-9]*.pid'
(also looked for processes matching "/Users/yu/Sites/RubyOnRails/public/dispatch.fcgi")
在lighttpd的log中看到如下信息:
2008-05-21 00:23:33: (log.c.75) server started
2008-05-21 00:23:33: (mod_fastcgi.c.1029) the fastcgi-backend /Users/yu/Sites/RubyOnRails/public/dispatch.fcgi failed to start:
2008-05-21 00:23:33: (mod_fastcgi.c.1033) child exited with status 9 /Users/yu/Sites/RubyOnRails/public/dispatch.fcgi
2008-05-21 00:23:33: (mod_fastcgi.c.1036) If you're trying to run PHP as a FastCGI backend, make sure you're using the FastCGI-enabled version.
You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT '(cgi)' NOR '(cli)'.
For more information, check http://trac.lighttpd.net/trac/wiki/Docs%3AModFastCGI#preparing-php-as-a-fastcgi-programIf this is PHP on Gentoo, add 'fastcgi' to the USE flags.
2008-05-21 00:23:33: (mod_fastcgi.c.1340) [ERROR]: spawning fcgi failed.
2008-05-21 00:23:33: (server.c.908) Configuration of plugins failed. Going down.

经google后才发觉script/server lighttpd只能用于ruby on rails的项目上,通过以下命令:
$> /usr/local/lighttpd/bin/spawn-fcgi -f /Users/yu/Sites/RubyOnRails/public/dispatch.fcgi -p 12000 -s /tmp/rails-fcgi.socket
会得到成功的结果如下:
spawn-fcgi.c.197: child spawned successfully: PID: 2275
而在jruby的项目下调用spawn-fcgi则会报脚本错误。

另附dispatch.sh[reference: http://www.javaeye.com/topic/168989]


#!/bin/sh

DISPATCH_PATH=/Users/yu/Sites/cv2/public/dispatch.fcgi
SOCKET_PATH=//Users/yu/Sites/cv2/tmp/sockets
RAILS_ENV=developement
export RAILS_ENV

case "$1" in

start)
for num in 0 1 2
do
/Users/yu/Programs/lighttpd/bin/spawn-fcgi -f $DISPATCH_PATH -s $SOCKET_PATH/rails.socket-$num
done
;;

stop)
killall -9 dispatch.fcgi
;;

restart)
$0 stop
$0 start
;;

*)
echo "Usage: dispatch.sh {start|stop|restart}"
;;

esac

exit 0

Tuesday, May 20, 2008

macbook and sudo

when I test below command in termial:
$> sudo ls -l .
then terminal will ask me input password, but current user has no password, and terminal will output nothing after entered.

after give current user a new password:
$> passwd
old password, new password, confirm new password, then type command in terminal again:
$> sudo ls -l .
input new password and enter, then results output as expected.

Wednesday, April 23, 2008

lighttpd php fastcgi and 500 internal error

当访问php页面时,得到一个500服务器内部错误(500 internal error ),服务器端错误日志如下:


2008-04-23 23:20:50: (mod_fastcgi.c.1743) connect failed: Connection refused on unix:/tmp/php-fastcgi.socket-3
2008-04-23 23:20:50: (mod_fastcgi.c.2912) backend died; we'll disable it for 5 seconds and send the request to another backend instead: reconnects: 0 load: 1
2008-04-23 23:20:50: (mod_fastcgi.c.2471) unexpected end-of-file (perhaps the fastcgi process died): pid: 350 socket: unix:/tmp/php-fastcgi.socket-3
2008-04-23 23:20:50: (mod_fastcgi.c.3281) response not received, request sent: 872 on socket: unix:/tmp/php-fastcgi.socket-3 for /php/phpinfo.php , closing connection

用lighttpd fastcgi模式调用php时报以上错误,在lighttpd官方网站上查到,是因为php在编译时未指定--enable-fastcgi, 于是重新编译了最新版的php5.2.5:

./configure --prefix=/usr/local/php5 --with-zlib --enable-fastcgi --with-mysql=/usr/local/mysql --enable-mbstring --enable-sockets --enable-gd-native-ttf --with-snmp --enable-soap
make
sudo make install

重启lighttpd之后即可正确访问php文件。

Thursday, March 20, 2008

hostname not match (OpenSSL::SSL::SSLError)

1. install soap4r
$> gem install soap4r
2. run soap request
driver = SOAP::RPC::Driver.new
driver.wiredump_dev = STDERR if $DEBUG
driver.wiredump_file_base = "soap_result"
......
3.get error as below:


C:/ruby/lib/ruby/1.8/openssl/ssl.rb:91:in `post_connection_check': hostname not match (OpenSSL::SSL::SSLError)
from C:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:1052:in `post_connection_check'
from C:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:1467:in `connect'
from C:/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout'
from C:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
from C:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:1454:in `connect'
from C:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:1311:in `query'
from C:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:932:in `query'
from C:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:2131:in `do_get_block'
... 7 levels...
from C:/ruby/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:143:in `call'
from C:/ruby/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/driver.rb:181:in `call'

4. google this problem and get resolution as below:
driver.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE
or
driver.options['protocol.http.ssl_config.verify_mode'] = 0
or
driver.options['protocol.http.ssl_config.verify_mode'] = ""
or
driver.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_PEER
driver.options['protocol.http.ssl_config.ca_file'] = '/etc/ssl/certs/certification_authority.crt'
driver.options['protocol.http.ssl_config.client_cert'] = '/etc/ssl/certs/client.cert'
driver.options['protocol.http.ssl_config.client_key'] = '/etc/ssl/certs/client.key'

Reference: http://www.fngtps.com/2007/03/openssl-ssl-sslerror-with-soap4r-and-the-rubyforge-gem