<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>tesla_lee (tesla_lee)</title>
    <link>https://ruby-china.org/tesla_lee</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>[求助] Capistrano Rails 6.0 ，yarn install 到  [4/4] Building fresh packages... 这一步总是很慢</title>
      <description>&lt;p&gt;奔溃了，每次都是在这个地方执行很久，取消几次重新发布后，可能又正常额，就在刚才，等了一个小时也没有继续往下执行，下面是相关的日志。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="no"&gt;Execute&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="ss"&gt;:updated&lt;/span&gt;
&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="no"&gt;Invoke&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="ss"&gt;:compile_assets&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;first_time&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="no"&gt;Invoke&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="ss"&gt;:set_rails_env&lt;/span&gt;
&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="no"&gt;Execute&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="ss"&gt;:compile_assets&lt;/span&gt;
&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="no"&gt;Invoke&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="ss"&gt;:assets:precompile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;first_time&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="no"&gt;Execute&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="ss"&gt;:assets:precompile&lt;/span&gt;
&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;&lt;span class="ss"&gt;:assets:precompile&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="no"&gt;RBENV_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="vg"&gt;$HOME&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt; &lt;span class="no"&gt;RBENV_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2.6&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="vg"&gt;$HOME&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rbenv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rbenv&lt;/span&gt; &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="n"&gt;bundle&lt;/span&gt; &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="n"&gt;rake&lt;/span&gt; &lt;span class="n"&gt;assets&lt;/span&gt;&lt;span class="ss"&gt;:precompile&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;yarn&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;v1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;9.4&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Resolving&lt;/span&gt; &lt;span class="n"&gt;packages&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Fetching&lt;/span&gt; &lt;span class="n"&gt;packages&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2881&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;DEP0005&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;DeprecationWarning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;deprecated&lt;/span&gt; &lt;span class="n"&gt;due&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;security&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;usability&lt;/span&gt; &lt;span class="n"&gt;issues&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="no"&gt;Please&lt;/span&gt; &lt;span class="n"&gt;use&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;alloc&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;allocUnsafe&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="n"&gt;fsevents&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;The&lt;/span&gt; &lt;span class="n"&gt;platform&lt;/span&gt; &lt;span class="s2"&gt;"linux"&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;incompatible&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="s2"&gt;"fsevents@1.2.9"&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;optional&lt;/span&gt; &lt;span class="n"&gt;dependency&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;failed&lt;/span&gt; &lt;span class="n"&gt;compatibility&lt;/span&gt; &lt;span class="n"&gt;check&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="no"&gt;Excluding&lt;/span&gt; &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;installation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Linking&lt;/span&gt; &lt;span class="n"&gt;dependencies&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;warning&lt;/span&gt; &lt;span class="s2"&gt;" &amp;gt; webpack-dev-server@3.9.0"&lt;/span&gt; &lt;span class="n"&gt;has&lt;/span&gt; &lt;span class="n"&gt;unmet&lt;/span&gt; &lt;span class="n"&gt;peer&lt;/span&gt; &lt;span class="n"&gt;dependency&lt;/span&gt; &lt;span class="s2"&gt;"webpack@^4.0.0"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;warning&lt;/span&gt; &lt;span class="s2"&gt;"webpack-dev-server &amp;gt; webpack-dev-middleware@3.7.2"&lt;/span&gt; &lt;span class="n"&gt;has&lt;/span&gt; &lt;span class="n"&gt;unmet&lt;/span&gt; &lt;span class="n"&gt;peer&lt;/span&gt; &lt;span class="n"&gt;dependency&lt;/span&gt; &lt;span class="s2"&gt;"webpack@^4.0.0"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Building&lt;/span&gt; &lt;span class="n"&gt;fresh&lt;/span&gt; &lt;span class="n"&gt;packages&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="no"&gt;Done&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="mf"&gt;170.88&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;yarn&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;v1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;9.4&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Resolving&lt;/span&gt; &lt;span class="n"&gt;packages&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Fetching&lt;/span&gt; &lt;span class="n"&gt;packages&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2965&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;DEP0005&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;DeprecationWarning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;deprecated&lt;/span&gt; &lt;span class="n"&gt;due&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;security&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;usability&lt;/span&gt; &lt;span class="n"&gt;issues&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="no"&gt;Please&lt;/span&gt; &lt;span class="n"&gt;use&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;alloc&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;allocUnsafe&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="no"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="n"&gt;fsevents&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;The&lt;/span&gt; &lt;span class="n"&gt;platform&lt;/span&gt; &lt;span class="s2"&gt;"linux"&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;incompatible&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="s2"&gt;"fsevents@1.2.9"&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;optional&lt;/span&gt; &lt;span class="n"&gt;dependency&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;failed&lt;/span&gt; &lt;span class="n"&gt;compatibility&lt;/span&gt; &lt;span class="n"&gt;check&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="no"&gt;Excluding&lt;/span&gt; &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;installation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Linking&lt;/span&gt; &lt;span class="n"&gt;dependencies&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;warning&lt;/span&gt; &lt;span class="s2"&gt;" &amp;gt; webpack-dev-server@3.9.0"&lt;/span&gt; &lt;span class="n"&gt;has&lt;/span&gt; &lt;span class="n"&gt;unmet&lt;/span&gt; &lt;span class="n"&gt;peer&lt;/span&gt; &lt;span class="n"&gt;dependency&lt;/span&gt; &lt;span class="s2"&gt;"webpack@^4.0.0"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="n"&gt;warning&lt;/span&gt; &lt;span class="s2"&gt;"webpack-dev-server &amp;gt; webpack-dev-middleware@3.7.2"&lt;/span&gt; &lt;span class="n"&gt;has&lt;/span&gt; &lt;span class="n"&gt;unmet&lt;/span&gt; &lt;span class="n"&gt;peer&lt;/span&gt; &lt;span class="n"&gt;dependency&lt;/span&gt; &lt;span class="s2"&gt;"webpack@^4.0.0"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
      &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="no"&gt;Building&lt;/span&gt; &lt;span class="n"&gt;fresh&lt;/span&gt; &lt;span class="n"&gt;packages&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>tesla_lee</author>
      <pubDate>Fri, 27 Dec 2019 13:47:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/39378</link>
      <guid>https://ruby-china.org/topics/39378</guid>
    </item>
    <item>
      <title>在 RubyGems 中发现多个漏洞 [ Multiple vulnerabilities in RubyGems ]。</title>
      <description>&lt;p&gt;以下是官方播客文章：
&lt;a href="https://www.ruby-lang.org/en/news/2017/08/29/multiple-vulnerabilities-in-rubygems/" rel="nofollow" target="_blank" title=""&gt;原文链接&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are multiple vulnerabilities in RubyGems bundled by Ruby. &lt;a href="http://blog.rubygems.org/2017/08/27/2.6.13-released.html" rel="nofollow" target="_blank" title=""&gt;It is reported at the official blog of RubyGems.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;p&gt;The following vulnerabilities have been reported.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a DNS request hijacking vulnerability&lt;/li&gt;
&lt;li&gt;an ANSI escape sequence vulnerability&lt;/li&gt;
&lt;li&gt;a DoS vulernerability in the query command&lt;/li&gt;
&lt;li&gt;a vulnerability in the gem installer that allowed a malicious gem to overwrite arbitrary files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is strongly recommended for Ruby users to take one of the following workarounds as soon as possible.&lt;/p&gt;
&lt;h2 id="Affected Versions"&gt;Affected Versions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ruby 2.2 series: 2.2.7 and earlier&lt;/li&gt;
&lt;li&gt;Ruby 2.3 series: 2.3.4 and earlier&lt;/li&gt;
&lt;li&gt;Ruby 2.4 series: 2.4.1 and earlier&lt;/li&gt;
&lt;li&gt;prior to trunk revision 59672&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Workarounds"&gt;Workarounds&lt;/h2&gt;
&lt;p&gt;At this moment, there are no Ruby releases including the fix for RubyGems. But you can upgrade RubyGems to the latest version. RubyGems 2.6.13 or later includes the fix for the vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;gem update --system&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you can’t upgrade RubyGems, you can apply the following patches as a workaround.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bugs.ruby-lang.org/attachments/download/6690/rubygems-2613-ruby22.patch" rel="nofollow" target="_blank" title=""&gt;for Ruby 2.2.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bugs.ruby-lang.org/attachments/download/6691/rubygems-2613-ruby23.patch" rel="nofollow" target="_blank" title=""&gt;for Ruby 2.3.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;for Ruby 2.4.1: need 2 patches. Apply sequentially as follows:

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://bugs.ruby-lang.org/attachments/download/6692/rubygems-2612-ruby24.patch" rel="nofollow" target="_blank" title=""&gt;RubyGems 2.6.11 to 2.6.12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bugs.ruby-lang.org/attachments/download/6693/rubygems-2613-ruby24.patch" rel="nofollow" target="_blank" title=""&gt;RubyGems 2.6.12 to 2.6.13&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;About the trunk, update to the latest revision.&lt;/p&gt;
&lt;h2 id="Credits"&gt;Credits&lt;/h2&gt;
&lt;p&gt;This report is based &lt;a href="http://blog.rubygems.org/2017/08/27/2.6.13-released.html" rel="nofollow" target="_blank" title=""&gt;on the official blog of RubyGems.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="History"&gt;History&lt;/h2&gt;
&lt;p&gt;Originally published at 2017-08-29 12:00:00 UTC&lt;/p&gt;</description>
      <author>tesla_lee</author>
      <pubDate>Wed, 30 Aug 2017 15:42:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/33980</link>
      <guid>https://ruby-china.org/topics/33980</guid>
    </item>
    <item>
      <title>RedisStore Cache 从 Rails 3.2.17 升级到 Rails 4.0.13 后，读取错误的问题</title>
      <description>&lt;p&gt;打扰大家了，现在遇到了下面这个问题，不知道如何解决。&lt;/p&gt;
&lt;h3 id="概要"&gt;概要&lt;/h3&gt;
&lt;p&gt;在 Rails 3.2.17 中创建的 RedisCache 不能在 Rails 4.0.13 中正确读取&lt;/p&gt;
&lt;h3 id="背景"&gt;背景&lt;/h3&gt;
&lt;p&gt;根据 Rails 官方升级指导，将项目从 Rails3.2.17 升级到 Rails 4.0.13，Ruby 版本保持 2.0.0-p247 没有改变。&lt;/p&gt;

&lt;p&gt;原来项目使用 RedisStore 做 Cache，在 Blog 代码中使用 Cache 如下&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Blog&lt;/span&gt;
  &lt;span class="o"&gt;...&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hidden_ids&lt;/span&gt;
    &lt;span class="n"&gt;hidden_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;"hidden_ids blog"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="ss"&gt;expires_in: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;week&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; 
      &lt;span class="n"&gt;hidden_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Blog&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hidden&lt;/span&gt;&lt;span class="ss"&gt;:true&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;pluck&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;hidden_ids&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;unless&lt;/span&gt; &lt;span class="n"&gt;hidden_ids&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;include?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="n"&gt;hidden_ids&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上代码会保存一个数组&lt;code&gt;[1,2,3,4,5,6,7]&lt;/code&gt;保存到 Redis 中。
Redis 中的日志显示如下：
&lt;code&gt;"setex" "hidden_ids blog" "604800" "\x04\bo: ActiveSupport::Cache::Entry\t:\x10@compressedF:\x10@expires_inf\x0c6.048e5:\x10@created_atf\x161436236658.032523:\x0b@value\"6\x04\b[\x11i\x01\x88i\x02-\x01i\x02\x7f\x01i\x02\xa6\x03i\x02\xb8\x05i\x02\xb6\x06i\x02\xe1\x06i\x02\xe8\x06i\x02\xea\x06i\x02\xfa\x06i\x02\xfb\x06i\x00"&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="问题"&gt;问题&lt;/h3&gt;
&lt;p&gt;在升级到 Rails 4.0.13 中之后，如果执行&lt;code&gt;Blog.hidden_ids&lt;/code&gt;
结果变成了
&lt;code&gt;"\x04\b[\x11i\x01\x88i\x02-\x01i\x02\x7F\x01i\x02\xA6\x03i\x02\xB8\x05i\x02\xB6\x06i\x02\xE1\x06i\x02\xE8\x06i\x02\xEA\x06i\x02\xFA\x06i\x02\xFB\x06i\x00"&lt;/code&gt;
而不是 Rails 3.2.17 版本中的
[136, 301, 383, 934, 1464, 1718, 1761, 1768, 1770, 1786, 1787, 0]&lt;/p&gt;
&lt;h3 id="调查的结果"&gt;调查的结果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;在 Rails 3.2.17 版本中，ActiveSupport::Cache::Entry 代码的 &lt;a href="https://github.com/rails/rails/blob/v3.2.17/activesupport/lib/active_support/cache.rb#L561" rel="nofollow" target="_blank" title=""&gt;line 561&lt;/a&gt;&lt;code&gt;@value = Marshal.dump(value)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;而在 Rails 4.0.13 版本中，ActiveSupport::Cache::Entry 代码的&lt;a href="https://github.com/rails/rails/blob/v4.0.13/activesupport/lib/active_support/cache.rb#L581" rel="nofollow" target="_blank" title=""&gt;line 581&lt;/a&gt;&lt;code&gt;@value = value&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;在 Rails 4.0.13 版本中，ActiveSupport::Cache::Entry 的&lt;a href="https://github.com/rails/rails/blob/v4.0.13/activesupport/lib/active_support/cache.rb#L666" rel="nofollow" target="_blank" title=""&gt;line 666&lt;/a&gt;发现方法&lt;code&gt;convert_version_4beta1_entry!&lt;/code&gt;，不知道是不是用来处理兼容的。&lt;/li&gt;
&lt;li&gt;在查看 3.2 到 4.0 的更新日志中，只是提到了 ActiveSupport::Cache::Entry 的优化，但是具体没有提修改了什么地方&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="疑问"&gt;疑问&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;是否升级后一定要清除 Cache?&lt;/li&gt;
&lt;li&gt;如果不清楚，这个问题有没有办法解决？&lt;/li&gt;
&lt;/ol&gt;</description>
      <author>tesla_lee</author>
      <pubDate>Tue, 07 Jul 2015 10:58:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/26357</link>
      <guid>https://ruby-china.org/topics/26357</guid>
    </item>
  </channel>
</rss>
