# \[Bug:1.9\] \`initialize\_copy': wrong argument type #\<Class:0x825d23c\> (expected Data) (TypeError)

**URL:** <https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264>\
**Category:** Development\
**Created:** [December 23, 2008, 5:53pm UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264 "2008-12-23T17:53:37Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 23, 2008, 5:53pm UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264/1 "2008-12-23T17:53:37Z")

</div>

e$B0J2\<$N%W%m%0%i%`$G!"e(B  
wrong argument type #Class:0x825d23c (expected Data) (TypeError)  
e$B$H$$$&4qL/$J%(%i!\<$,=P$^$9!#e(B

% ./ruby -ve ‘f = open("/tmp/x", “w”)  
1000.times { f.dup.print “a” }  
GC.start  
’  
ruby 1.9.1 (2008-12-24 patchlevel-5000 trunk 20956) [i686-linux]  
-e:2:in `initialize_copy': wrong argument type #<Class:0x825d23c> (expected Data) (TypeError) from -e:2:in`dup’  
from -e:2:in `block in <main>' from -e:2:in`times’  
from -e:2:in `’

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 24, 2008, 2:17am UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264/2 "2008-12-24T02:17:29Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:37572] [Bug:1.9] `initialize_copy': wrong argument type #<Class:0x825d23c> (expected Data) (TypeError)" on Wed, 24 Dec 2008 01:44:13 +0900, Tanaka A. <removed_email_address@domain.invalid> writes: | |e$B0J2<$N%W%m%0%i%`$G!“e(B  
| wrong argument type #Class:0x825d23c (expected Data) (TypeError)  
|e$B$H$$$&4qL/$J%(%i!\<$,=P$^$9!#e(B  
|  
|% ./ruby -ve 'f = open(”/tmp/x”, “w”)  
|1000.times { f.dup.print “a” }  
|GC.start  
|’

IOe$B$N%U%!%$%J%i%$%6$r\<B9T$9$k;~E@$G$Oe(Bwrite\_locke$B$,$9$G$K2rJ|$5e(B  
e$B$l$A$c$C$F$k$+$i$N$h$&$G$9!#$H$j$"$($:!"e(B

- e$B%U%!%$%J%i%$%6\<B9TA0$Ke(Bwrite\_locke$B$r%/%j%"e(B
- io\_fflushe$B$Ge(Bwrite\_locke$B$rLdEzL5MQ$G;2\>H$7$F$$$?$N$r$d$a$ke(B

e$B$H$$$&BP1~$G\>e5-$N%W%m%0%i%`$OF0$$$F$$$k$h$&$K8+$($^$9!#$,!"e(B  
e$B$o$6$o$6e(Bwrite\_locke$B$r$+$1$F$$$?$N$r$O$:$7$A$c$C$FNI$$$N$+$H$$e(B  
e$B$&H=CG$O;d$K$O$D$-$+$M$^$9!#e(B

e$B%Q%C%A$rE:IU$7$^$9!#e(B

— a/io.c  
+++ b/io.c  
@@ -558,7 +558,13 @@ io\_fflush(rb\_io\_t \*fptr)  
retry:  
if (fptr-\>wbuf\_len == 0)  
return 0;

- r = rb\_mutex\_synchronize(fptr-\>write\_lock, io\_flush\_buffer,  
(VALUE)fptr);

- if (fptr-\>write\_lock) {
- r = rb\_mutex\_synchronize(fptr-\>write\_lock, io\_flush\_buffer,  
(VALUE)fptr);
- }
- else {
- long l = io\_writable\_length(fptr, fptr-\>wbuf\_len);
- r = rb\_write\_internal(fptr-\>fd, fptr-\>wbuf+fptr-\>wbuf\_off, l);
- }  
/\* xxx: Other threads may modify wbuf.
  - A lock is required, definitely. \*/  
rb\_io\_check\_closed(fptr);  
@@ -3194,6 +3200,7 @@ rb\_io\_fptr\_finalize(rb\_io\_t \*fptr)  
{  
if (!fptr) return 0;  
fptr-\>pathv = Qnil;

- fptr-\>write\_lock = 0;  
if (0 \<= fptr-\>fd)  
rb\_io\_fptr\_cleanup(fptr, Qtrue);  
if (fptr-\>rbuf) {

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 24, 2008, 3:40am UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264/3 "2008-12-24T03:40:31Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 24 Dec 2008 10:08:22 +0900,  
Yukihiro M. wrote in [ruby-dev:37573]:

> IOe$B$N%U%!%$%J%i%$%6$r\<B9T$9$k;~E@$G$Oe(Bwrite\_locke$B$,$9$G$K2rJ|$5e(B  
> e$B$l$A$c$C$F$k$+$i$N$h$&$G$9!#$H$j$"$($:!"e(B
> 
> - e$B%U%!%$%J%i%$%6\<B9TA0$Ke(Bwrite\_locke$B$r%/%j%"e(B
> - io\_fflushe$B$Ge(Bwrite\_locke$B$rLdEzL5MQ$G;2\>H$7$F$$$?$N$r$d$a$ke(B
> 
> e$B$H$$$&BP1~$G\>e5-$N%W%m%0%i%`$OF0$$$F$$$k$h$&$K8+$($^$9!#$,!"e(B  
> e$B$o$6$o$6e(Bwrite\_locke$B$r$+$1$F$$$?$N$r$O$:$7$A$c$C$FNI$$$N$+$H$$e(B  
> e$B$&H=CG$O;d$K$O$D$-$+$M$^$9!#e(B

e$B%U%!%$%J%i%$%6\<B9T;~$O6%9g$9$k%9%l%C%I$O$J$$$O$:$H;W$o$l$k$N$G!"e(B  
e$B$O$:$7$A$c$C$F$h$$$s$G$O$J$$$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 24, 2008, 8:55pm UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264/4 "2008-12-24T20:55:58Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 24 Dec 2008 20:30:21 +0900,  
Yukihiro M. wrote in [ruby-dev:37581]:

> |\> e$B$o$6$o$6e(Bwrite\_locke$B$r$+$1$F$$$?$N$r$O$:$7$A$c$C$FNI$$$N$+$H$$e(B  
> |\> e$B$&H=CG$O;d$K$O$D$-$+$M$^$9!#e(B  
> |  
> |e$B%U%!%$%J%i%$%6\<B9T;~$O6%9g$9$k%9%l%C%I$O$J$$$O$:$H;W$o$l$k$N$G!"e(B  
> |e$B$O$:$7$A$c$C$F$h$$$s$G$O$J$$$G$7$g$&$+!#e(B
> 
> e$B$s$8$c!"%3%\_%C%H$7$^$9!#$H$3$m$G!“e(BGILe$B$,$”$k0J\>e!“e(Bmutexe$B$r;H$oe(B  
> e$B$J$/$F$bC1=c$J%U%i%0$G%m%C%/$,\<B8=$G$-$=$&$J5$$,$9$k$s$G$9$,!#e(B  
> e$B$=$&$9$k$H$$$m$$$m%3%9%H$,0B$=$&$G$9$,!”$=$&$G$b$J$$$s$G$9$+e(B  
> e$B$M!#e(B

e$B=q$-9~$\_$,e(Bblocking  
regione$B$GJB9TF0:n$9$k$N$G!“DL\>o$Ne(Bflushe$B$G$Oe(B  
mutexe$B$,I,MW$G$9!#%U%!%$%J%i%$%6$,Av$k;~E@$G$O!”$=$&$$$&%9%l%C%Ie(B  
e$B$O=\*N;$7$F$$$k$O$:e(B(e$B$@$+$i2rJ|$G$-$ke(B)e$B$@$H;W$$$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 24, 2008, 12:39pm UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264/5 "2008-12-24T12:39:37Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:37574] Re: [Bug:1.9] `initialize\_copy’: wrong  
argument type #Class:0x825d23c (expected Data) (TypeError)”  
on Wed, 24 Dec 2008 11:31:05 +0900, Nobuyoshi N.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|\> e$B$o$6$o$6e(Bwrite\_locke$B$r$+$1$F$$$?$N$r$O$:$7$A$c$C$FNI$$$N$+$H$$e(B  
|\> e$B$&H=CG$O;d$K$O$D$-$+$M$^$9!#e(B  
|  
|e$B%U%!%$%J%i%$%6\<B9T;~$O6%9g$9$k%9%l%C%I$O$J$$$O$:$H;W$o$l$k$N$G!"e(B  
|e$B$O$:$7$A$c$C$F$h$$$s$G$O$J$$$G$7$g$&$+!#e(B

e$B$s$8$c!"%3%\_%C%H$7$^$9!#$H$3$m$G!“e(BGILe$B$,$”$k0J\>e!“e(Bmutexe$B$r;H$oe(B  
e$B$J$/$F$bC1=c$J%U%i%0$G%m%C%/$,\<B8=$G$-$=$&$J5$$,$9$k$s$G$9$,!#e(B  
e$B$=$&$9$k$H$$$m$$$m%3%9%H$,0B$=$&$G$9$,!”$=$&$G$b$J$$$s$G$9$+e(B  
e$B$M!#e(B

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 25, 2008, 7:54am UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264/6 "2008-12-25T07:54:20Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:37589] Re: [Bug:1.9] `initialize\_copy’: wrong  
argument type #Class:0x825d23c (expected Data) (TypeError)”  
on Thu, 25 Dec 2008 04:46:23 +0900, Nobuyoshi N.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B=q$-9~$\_$,e(Bblocking regione$B$GJB9TF0:n$9$k$N$G!“DL\>o$Ne(Bflushe$B$G$Oe(B  
|mutexe$B$,I,MW$G$9!#%U%!%$%J%i%$%6$,Av$k;~E@$G$O!”$=$&$$$&%9%l%C%Ie(B  
|e$B$O=\*N;$7$F$$$k$O$:e(B(e$B$@$+$i2rJ|$G$-$ke(B)e$B$@$H;W$$$^$9!#e(B

e$B$=$&$$$($P$=$&$$$&OC$G$7$?$M!#$9$C$+$jK:$l$F$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 26, 2008, 6:23am UTC](https://www.ruby-forum.com/t/bug-1-9-initialize-copy-wrong-argument-type-class-0x825d23c-expected-data-typeerror/156264/7 "2008-12-26T06:23:30Z")

</div>

e$B%A%1%C%He(B #923 e$B$,99?7$5$l$^$7$?!#e(B (by Yuki S.)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B

## applied in r21039

[http://redmine.ruby-lang.org/issues/show/923](http://redmine.ruby-lang.org/issues/show/923)
