Почему возникает ошибка TagLib для Google Kubernetes Engine? - PullRequest
0 голосов
/ 02 марта 2020

Ruby 2.5.1 & Rails 5.1.7

Я использую gem 'taglib-ruby', '~> 0.7.0' для анализа тегов и изображений звуков.

Я развернул свое приложение на Google Kubernetes Engine и получил эту ошибку при попытке разобрать звук.

-- Control frame information -----------------------------------------------
c:0106 p:---- s:0908 e:000907 CFUNC  :frame_list
c:0105 p:0015 s:0903 e:000902 METHOD /app/lib/sound_parse.rb:106
c:0104 p:0082 s:0890 e:000889 BLOCK  /app/lib/sound_parse.rb:32
c:0103 p:0014 s:0884 e:000883 METHOD /usr/local/bundle/gems/taglib-ruby-0.7.1/lib/taglib/base.rb:8
c:0102 p:0050 s:0877 e:000876 METHOD /app/lib/sound_parse.rb:12
c:0101 p:0069 s:0868 e:000867 METHOD /app/app/controllers/sounds_controller.rb:174
c:0100 p:0012 s:0863 e:000862 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/basic_implicit_render.rb:4
c:0099 p:0010 s:0857 e:000856 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:186
c:0098 p:0031 s:0851 e:000850 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/rendering.rb:30
c:0097 p:0011 s:0846 e:000845 BLOCK  /usr/local/bundle/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:20
c:0096 p:0112 s:0843 E:000a78 METHOD /usr/local/bundle/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:131
c:0095 p:0007 s:0833 E:000da8 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:19
c:0094 p:0010 s:0828 e:000827 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/rescue.rb:20
c:0093 p:0011 s:0822 e:000821 BLOCK  /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:32
c:0092 p:0011 s:0817 e:000816 BLOCK  /usr/local/bundle/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166
c:0091 p:0018 s:0814 e:000813 METHOD /usr/local/bundle/gems/activesupport-5.1.7/lib/active_support/notifications/instrumenter.rb:21
c:0090 p:0027 s:0806 e:000805 METHOD /usr/local/bundle/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166
c:0089 p:0104 s:0800 e:000799 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:30
c:0088 p:0134 s:0794 e:000793 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/params_wrapper.rb:252
c:0087 p:0025 s:0786 e:000785 METHOD /usr/local/bundle/gems/activerecord-5.1.7/lib/active_record/railties/controller_runtime.rb:22
c:0086 p:0023 s:0780 e:000779 METHOD /usr/local/bundle/gems/mongoid-7.0.5/lib/mongoid/railties/controller_runtime.rb:19
c:0085 p:0079 s:0774 e:000773 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:124
c:0084 p:0061 s:0767 e:000766 METHOD /usr/local/bundle/gems/actionview-5.1.7/lib/action_view/rendering.rb:30
c:0083 p:0020 s:0761 e:000760 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal.rb:189
c:0082 p:0041 s:0754 e:000753 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal.rb:253
c:0081 p:0011 s:0747 e:000746 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_dispatch/routing/route_set.rb:49
c:0080 p:0041 s:0739 e:000738 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_dispatch/routing/route_set.rb:31
c:0079 p:0134 s:0731 e:000730 BLOCK  /usr/local/bundle/gems/actionpack-5.1.7/lib/action_dispatch/journey/router.rb:50 [FINISH]
c:0078 p:---- s:0719 e:000718 CFUNC  :each
...and many more backtrace lines...

/ app / lib / sound_parse.rb : 106

  105: def get_picture_url(tag, content_type, is_multiply)
  106:   cover = is_mp3?(content_type) ? tag.frame_list('APIC').first : tag.item_list_map['covr'].to_cover_art_list.first rescue nil

Но на локальной машине у меня все работает нормально.

У меня есть подозрение, что ошибка возникает из-за того, что ImageMagick не установлен в GKEngine (хотя я не точно не знаю).

gems> taglib- ruby -0.7.1> docs> taglib> id3v2.rb

class Tag < TagLib::Tag
  # @return [Array<TagLib::ID3v2::Frame>]
  def frame_list
  end
...