Project

General

Profile

Bug #11383

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago

I've got a Ruby program which reads some RSS/Atom feeds to load each of them into a relational database. It makes use of a modified version of SimpleRSS v1.2. 

 After moving to Ruby 2.2.2, I observe 100% CPU usage from time to time. Using gdb, I was able to identify the culprit: it's a call to `str_buf_cat` from `str_gsub`. Here's the section of code that loops in `string.c` (from line 2198 til line 2204). 

 ~~~c ~~~ 
	 while (total > capa) { 
	     if (capa > LONG_MAX / 2) { 
		 capa = (total + 4095) / 4096 * 4096; 
		 break; 
	     } 
	     capa = 2 * capa; 
	 } 
 ~~~ 

 `capa` is equal to 0 when the while block infinitely loops. I guess it's somehow unexpected... 

 Unfortunately, since the VM is looping, I cannot determine the piece of 'my' code where `gsub` is used. `rb_eval`, as found in https://github.com/michaelklishin/gdb-macros-for-ruby/blob/master/gdb_macros_for_ruby, cannot work because rb_finish cannot terminate. 

 But I was able to dump the backtrace and all the args and locals that lead to the infinite loop. 

 ~~~ 
 #0    str_buf_cat (str=139648800, ptr=0x7e580b0 "<", len=1) at string.c:2203 
 #1    0x00007fd211b721a0 in rb_enc_cr_str_buf_cat (str=139648800, ptr=0x7e580b0 "<", len=1, ptr_encindex=<optimized out>, ptr_cr=1048576, ptr_cr_ret=<optimized out>) at string.c:2322 
 #2    0x00007fd211b7b245 in rb_str_buf_append (str=139648800, str2=139427760) at string.c:2365 
 #3    0x00007fd211b7b5ab in str_gsub (argc=<optimized out>, argv=<optimized out>, str=139649120, bang=0) at string.c:4356 
 #4    0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe0c0, ci=<optimized out>) at vm_insnhelper.c:1382 
 #5    0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024 
 #6    0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #7    0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=133345280, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, 
     defined_class=96453960, splattable=1) at vm.c:813 
 #8    0x00007fd211bd3287 in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x7fff972d7728, argc=1, self=<optimized out>, block=<optimized out>, 
     th=<optimized out>) at vm.c:771 
 #9    vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853 
 #10 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987 
 #11 rb_yield (val=95265200) at vm_eval.c:997 
 #12 0x00007fd211a4d432 in rb_ary_each (array=133344920) at array.c:1803 
 #13 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe2f0, ci=<optimized out>) at vm_insnhelper.c:1382 
 #14 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x68c8ff8, reg_cfp=0x7fd210afe2f0, th=0x24585f0) at vm_insnhelper.c:1475 
 #15 vm_call_method (th=0x24585f0, cfp=0x7fd210afe2f0, ci=0x68c8ff8) at vm_insnhelper.c:1691 
 #16 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024 
 #17 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #18 0x00007fd211bd0873 in vm_call0_body (th=0x24585f0, ci=0x7fff972d7d00, argv=0x7fd2109ff508) at vm_eval.c:180 
 #19 0x00007fd211bd0aaf in vm_call0 (defined_class=96390640, me=<optimized out>, argv=<optimized out>, argc=<optimized out>, id=<optimized out>, recv=<optimized out>, th=<optimized out>) at vm_eval.c:59 
 #20 rb_vm_call (th=<optimized out>, recv=<optimized out>, id=<optimized out>, argc=<optimized out>, argv=<optimized out>, me=<optimized out>, defined_class=96390640) at vm_eval.c:260 
 #21 0x00007fd211a9ed32 in rb_method_call_with_block (argc=1, argv=0x7fd2109ff508, method=90586800, pass_procval=8) at proc.c:1853 
 #22 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe3e0, ci=<optimized out>) at vm_insnhelper.c:1382 
 #23 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x5fa4d58, reg_cfp=0x7fd210afe3e0, th=0x24585f0) at vm_insnhelper.c:1475 
 #24 vm_call_method (th=0x24585f0, cfp=0x7fd210afe3e0, ci=0x5fa4d58) at vm_insnhelper.c:1691 
 #25 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054 
 #26 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #27 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96159800, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=69313120, 
     splattable=1) at vm.c:813 
 #28 0x00007fd211bd323f in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x0, argc=0, self=<optimized out>, block=<optimized out>, th=<optimized out>) 
     at vm.c:771 
 #29 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853 
 #30 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987 
 #31 rb_yield (val=52) at vm_eval.c:994 
 #32 0x00007fd211a96b69 in rb_protect (proc=0x7fd211bd3170 <rb_yield>, data=52, state=0x7fff972d877c) at eval.c:876 
 #33 0x00007fd211b15132 in rb_f_fork (obj=<optimized out>) at process.c:3687 
 #34 rb_f_fork (obj=<optimized out>) at process.c:3675 
 #35 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe570, ci=<optimized out>) at vm_insnhelper.c:1382 
 #36 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024 
 #37 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #38 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96159800, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=96390640, 
     splattable=1) at vm.c:813 
 #39 0x00007fd211bd3287 in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x7fff972d8cd8, argc=1, self=<optimized out>, block=<optimized out>, 
     th=<optimized out>) at vm.c:771 
 #40 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853 
 #41 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987 
 #42 rb_yield (val=90431480) at vm_eval.c:997 
 #43 0x00007fd211a4d432 in rb_ary_each (array=90502920) at array.c:1803 
 #44 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe750, ci=<optimized out>) at vm_insnhelper.c:1382 
 #45 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024 
 #46 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 ---Type <return> to continue, or q <return> to quit--- 
 #47 0x00007fd211bd0873 in vm_call0_body (th=0x24585f0, ci=0x7fff972d91e0, argv=0x7fd2109ff370) at vm_eval.c:180 
 #48 0x00007fd211bd0aaf in vm_call0 (defined_class=96390640, me=<optimized out>, argv=<optimized out>, argc=<optimized out>, id=<optimized out>, recv=<optimized out>, th=<optimized out>) at vm_eval.c:59 
 #49 rb_vm_call (th=<optimized out>, recv=<optimized out>, id=<optimized out>, argc=<optimized out>, argv=<optimized out>, me=<optimized out>, defined_class=96390640) at vm_eval.c:260 
 #50 0x00007fd211a9ed32 in rb_method_call_with_block (argc=0, argv=0x7fd2109ff370, method=65003640, pass_procval=8) at proc.c:1853 
 #51 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe7f0, ci=<optimized out>) at vm_insnhelper.c:1382 
 #52 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054 
 #53 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #54 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96159800, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=96311120, 
     splattable=0) at vm.c:813 
 #55 0x00007fd211bd2513 in invoke_block_from_c (splattable=0, defined_class=96311120, cref=0x0, blockptr=0x0, argv=0x7fd2109ff280, argc=0, self=96159800, block=<optimized out>, th=0x24585f0) at vm.c:771 
 #56 vm_invoke_proc (th=0x24585f0, proc=0x35caf50, self=96159800, defined_class=96311120, argc=0, argv=0x7fd2109ff280, blockptr=0x0) at vm.c:878 
 #57 0x00007fd211bd26bd in rb_vm_invoke_proc (th=<optimized out>, proc=<optimized out>, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>) at vm.c:897 
 #58 0x00007fd211a9d78f in proc_call (argc=0, argv=0x7fd2109ff280, procval=96158240) at proc.c:731 
 #59 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afea20, ci=<optimized out>) at vm_insnhelper.c:1382 
 #60 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x3f40b40, reg_cfp=0x7fd210afea20, th=0x24585f0) at vm_insnhelper.c:1475 
 #61 vm_call_method (th=0x24585f0, cfp=0x7fd210afea20, ci=0x3f40b40) at vm_insnhelper.c:1691 
 #62 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054 
 #63 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #64 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96096080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=66391040, 
     splattable=0) at vm.c:813 
 #65 0x00007fd211bd2513 in invoke_block_from_c (splattable=0, defined_class=66391040, cref=0x0, blockptr=0x0, argv=0x7fd2109ff258, argc=0, self=96096080, block=<optimized out>, th=0x24585f0) at vm.c:771 
 #66 vm_invoke_proc (th=0x24585f0, proc=0x657dea0, self=96096080, defined_class=66391040, argc=0, argv=0x7fd2109ff258, blockptr=0x0) at vm.c:878 
 #67 0x00007fd211bd26bd in rb_vm_invoke_proc (th=<optimized out>, proc=<optimized out>, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>) at vm.c:897 
 #68 0x00007fd211a9d78f in proc_call (argc=0, argv=0x7fd2109ff258, procval=96095760) at proc.c:731 
 #69 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afeac0, ci=<optimized out>) at vm_insnhelper.c:1382 
 #70 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x3f3b430, reg_cfp=0x7fd210afeac0, th=0x24585f0) at vm_insnhelper.c:1475 
 #71 vm_call_method (th=0x24585f0, cfp=0x7fd210afeac0, ci=0x3f3b430) at vm_insnhelper.c:1691 
 #72 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054 
 #73 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #74 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=66067080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=66599560, 
     splattable=0) at vm.c:813 
 #75 0x00007fd211bd2513 in invoke_block_from_c (splattable=0, defined_class=66599560, cref=0x0, blockptr=0x0, argv=0x7fd2109ff170, argc=0, self=66067080, block=<optimized out>, th=0x24585f0) at vm.c:771 
 #76 vm_invoke_proc (th=0x24585f0, proc=0x690a990, self=66067080, defined_class=66599560, argc=0, argv=0x7fd2109ff170, blockptr=0x0) at vm.c:878 
 #77 0x00007fd211bd26bd in rb_vm_invoke_proc (th=<optimized out>, proc=<optimized out>, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>) at vm.c:897 
 #78 0x00007fd211a9d78f in proc_call (argc=0, argv=0x7fd2109ff170, procval=96097720) at proc.c:731 
 #79 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afeca0, ci=<optimized out>) at vm_insnhelper.c:1382 
 #80 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x3f0a5a0, reg_cfp=0x7fd210afeca0, th=0x24585f0) at vm_insnhelper.c:1475 
 #81 vm_call_method (th=0x24585f0, cfp=0x7fd210afeca0, ci=0x3f0a5a0) at vm_insnhelper.c:1691 
 #82 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054 
 #83 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #84 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=38526080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=38530160, 
     splattable=1) at vm.c:813 
 #85 0x00007fd211bd323f in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x0, argc=0, self=<optimized out>, block=<optimized out>, th=<optimized out>) 
     at vm.c:771 
 #86 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853 
 #87 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987 
 #88 rb_yield (val=52) at vm_eval.c:994 
 #89 0x00007fd211a96b69 in rb_protect (proc=0x7fd211bd3170 <rb_yield>, data=52, state=0x7fff972db32c) at eval.c:876 
 #90 0x00007fd211b15132 in rb_f_fork (obj=<optimized out>) at process.c:3687 
 #91 rb_f_fork (obj=<optimized out>) at process.c:3675 
 #92 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afee30, ci=<optimized out>) at vm_insnhelper.c:1382 
 #93 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x28840c0, reg_cfp=0x7fd210afee30, th=0x24585f0) at vm_insnhelper.c:1475 
 #94 vm_call_method (th=0x24585f0, cfp=0x7fd210afee30, ci=0x28840c0) at vm_insnhelper.c:1691 
 ---Type <return> to continue, or q <return> to quit--- 
 #95 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024 
 #96 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #97 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=38526080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=38530160, 
     splattable=1) at vm.c:813 
 #98 0x00007fd211bd3287 in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x7fff972db958, argc=1, self=<optimized out>, block=<optimized out>, 
     th=<optimized out>) at vm.c:771 
 #99 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853 
 #100 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987 
 #101 rb_yield (val=40313360) at vm_eval.c:997 
 #102 0x00007fd211a4d432 in rb_ary_each (array=41238960) at array.c:1803 
 #103 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afeed0, ci=<optimized out>) at vm_insnhelper.c:1382 
 #104 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x2887e28, reg_cfp=0x7fd210afeed0, th=0x24585f0) at vm_insnhelper.c:1475 
 #105 vm_call_method (th=0x24585f0, cfp=0x7fd210afeed0, ci=0x2887e28) at vm_insnhelper.c:1691 
 #106 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024 
 #107 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #108 0x00007fd211bd4a36 in rb_iseq_eval (iseqval=42463120) at vm.c:1657 
 #109 0x00007fd211a9942d in rb_load_internal0 (th=0x24585f0, fname=40310160, wrap=<optimized out>) at load.c:614 
 #110 0x00007fd211a9b5df in rb_load_internal (wrap=0, fname=<optimized out>) at load.c:643 
 #111 rb_require_internal (fname=40310240, safe=0) at load.c:1004 
 #112 0x00007fd211a9b8c9 in rb_require_safe (fname=40310280, safe=<optimized out>) at load.c:1052 
 #113 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afef70, ci=<optimized out>) at vm_insnhelper.c:1382 
 #114 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x2873770, reg_cfp=0x7fd210afef70, th=0x24585f0) at vm_insnhelper.c:1475 
 #115 vm_call_method (th=0x24585f0, cfp=0x7fd210afef70, ci=0x2873770) at vm_insnhelper.c:1691 
 #116 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054 
 #117 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400 
 #118 0x00007fd211bd0397 in rb_iseq_eval_main (iseqval=40311160) at vm.c:1670 
 #119 0x00007fd211a949e2 in ruby_exec_internal (n=0x2671978) at eval.c:252 
 #120 0x00007fd211a9625d in ruby_exec_node (n=0x2671978) at eval.c:317 
 #121 0x00007fd211a9890e in ruby_run_node (n=0x2671978) at eval.c:309 
 #122 0x00000000004007db in main (argc=8, argv=0x7fff972dc9f8) at main.c:36 


 (gdb) set print elements 0 
 (gdb) info args 
 str = 139648800 
 ptr = 0x7e580b0 "<" 
 len = 1 
 (gdb) info locals 
 capa = 0 
 total = 1 
 olen = 0 
 off = <optimized out> 
 sptr = 0x0 
 termlen = 1 
 __PRETTY_FUNCTION__ = "str_buf_cat" 

 (gdb) select-frame 1 
 (gdb) info args 
 str = 139648800 
 ptr = 0x7e580b0 "<" 
 len = 1 
 ptr_encindex = <optimized out> 
 ptr_cr = 1048576 
 ptr_cr_ret = <optimized out> 
 (gdb) info locals 
 str_encindex = 1 
 res_encindex = <optimized out> 
 str_cr = 1048576 
 res_cr = <optimized out> 
 str_enc = <optimized out> 
 ptr_enc = <optimized out> 

 (gdb) select-frame 2 
 (gdb) info args 
 str = 139648800 
 str2 = 139427760 
 (gdb) info locals 
 str2_cr = 1048576 

 (gdb) select-frame 3 
 (gdb) info args 
 argc = <optimized out> 
 argv = <optimized out> 
 str = 139649120 
 bang = 0 
 (gdb) info locals 
 pat = 94449960 
 val = <optimized out> 
 repl = 4294967295 
 match = <optimized out> 
 match0 = 139640960 
 dest = 139648800 
 hash = 8 
 regs = <optimized out> 
 beg = <optimized out> 
 n = <optimized out> 
 beg0 = 727 
 end0 = 731 
 offset = 727 
 blen = <optimized out> 
 slen = 4132 
 len = 0 
 last = <optimized out> 
 mode = ITER 
 sp = 0x8865ce0 "&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Hola chicas,vengo a comunicaros quién es la ganadora del &lt;a href=\"http://anamariearl.blogspot.com.es/2015/05/set-aloe-vera-lr-sorteo.html\"&gt;Sorteo&lt;/a&gt; de un Lote de productos de Aloe Vera de &lt;a href=\"http://www.lrworld.com/es/\"&gt;LR Health &amp;Beauty&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;La afortunada va a poder disfrutar de una caja formada por:&lt;span style=\"color: lime;\"&gt; &lt;b&gt;&lt;span style=\"color: black;\"&gt;Aloe vera con Própolis&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;que es una loción suave idónea para una piel    seca que necesita cuidados especiales.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;&lt;b&gt;El Aloe vera Concentrado&lt;/b&gt; que proporciona una hidratación máxima y deja una agradable sensación de frescor.Y &lt;b&gt;Aloe Vera Spray de Emergencia &lt;/b&gt;que hidrata rápidamente la piel y cuida y regenera la que ha sido castigada por el sol.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class=\"separator\" style=\"clear: both; text-align: center;\"&gt;&lt;a href=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"&gt;&lt;img border=\"0\" src=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Y la ganadora de este maravilloso regalo es:&lt;/span&gt;&nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=\"background: #C3E6F1; border-radius: 6px; border: 1px solid #0099CC; color: black; font-family: font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12pt;\"&gt;&lt;span style=\"font-size: large;\"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style=\"list-style: none; margin: 0; padding: 0;\"&gt;&lt;span style=\"font-size: large;\"&gt;&lt;br /&gt;&nbsp;&nbsp;&nbsp; &lt;li&gt;Mariangeles Guerra Rodriguez&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style=\"font-size: large;\"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Muchas felicidades,me alegro mucho por ti seguro que te va encantar tu premio porque es un pack genial y es perfecto para este verano.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Me pongo en contacto contigo para que me des tus datos. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Muchas gracias a todas por participar y a la empresa por colaborar conmigo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;No os preocupeis que otros sorteos están de camino y habrá más oportunidades de ganar alguno.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Hasta el próximo post.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Mil besos. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style=\"list-style: none; margin: 0; padding: 0;\"&gt;&lt;br /&gt;&lt;/ul&gt;&lt;img src=\"http://feeds.feedburner.com/~r/Anamariearl/~4/wvZCu0DkZzE\" height=\"1\" width=\"1\" alt=\"\"/&gt;" 
 cp = 0x8865fb7 "&lt;b&gt; &lt;/b&gt;que es una loción suave idónea para una piel    seca que necesita cuidados especiales.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;&lt;b&gt;El Aloe vera Concentrado&lt;/b&gt; que proporciona una hidratación máxima y deja una agradable sensación de frescor.Y &lt;b&gt;Aloe Vera Spray de Emergencia &lt;/b&gt;que hidrata rápidamente la piel y cuida y regenera la que ha sido castigada por el sol.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class=\"separator\" style=\"clear: both; text-align: center;\"&gt;&lt;a href=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"&gt;&lt;img border=\"0\" src=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Y la ganadora de este maravilloso regalo es:&lt;/span&gt;&nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=\"background: #C3E6F1; border-radius: 6px; border: 1px solid #0099CC; color: black; font-family: font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12pt;\"&gt;&lt;span style=\"font-size: large;\"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style=\"list-style: none; margin: 0; padding: 0;\"&gt;&lt;span style=\"font-size: large;\"&gt;&lt;br /&gt;&nbsp;&nbsp;&nbsp; &lt;li&gt;Mariangeles Guerra Rodriguez&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style=\"font-size: large;\"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Muchas felicidades,me alegro mucho por ti seguro que te va encantar tu premio porque es un pack genial y es perfecto para este verano.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Me pongo en contacto contigo para que me des tus datos. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Muchas gracias a todas por participar y a la empresa por colaborar conmigo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;No os preocupeis que otros ---Type <return> to continue, or q <return> to quit--- 
 sorteos están de camino y habrá más oportunidades de ganar alguno.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Hasta el próximo post.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=\"font-size: large;\"&gt;&lt;span style=\"font-family: &quot;Trebuchet MS&quot;,sans-serif;\"&gt;Mil besos. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style=\"list-style: none; margin: 0; padding: 0;\"&gt;&lt;br /&gt;&lt;/ul&gt;&lt;img src=\"http://feeds.feedburner.com/~r/Anamariearl/~4/wvZCu0DkZzE\" height=\"1\" width=\"1\" alt=\"\"/&gt;" 
 tainted = 0 
 need_backref = -1 
 str_enc = 0x245af30 
 ~~~

Back