好奇心の赴くままに

〜楽しい人生の礎を〜

AWS CLIでRedshiftのcluster resizeの時間(見積もり)を取得する

summary

environments

  • Mac OS X 10.14.3 (Mojave)
  • Python 3.6.3
  • aws-cli 1.16.111
  • jq 1.6 (これはアウトプットの加工用に)

commands

$ aws redshift describe-resize --cluster-identifier ${cluster_name} | jq ".EstimatedTimeToCompletionInSeconds"
10094

memo

  • 今回はclassic resizeを実施(elastic resizeはもっと早くできるっぽい)
  • resizeの進み具合?によっては EstimatedTimeToCompletionInSeconds というkeyが含まれないこともあるみたいだった
  • resizeの対象のデータ量で見るのもいいかも
$ aws redshift describe-resize --cluster-identifier ${cluster_name} | jq ".ProgressInMegaBytes / .TotalResizeDataInMegaBytes"
0.325573471600206
  • resizeはめちゃくちゃ時間かかるので心の準備とその間のデータ取り込み(あるいは取り直し)だけ考慮しておくと落ち着いてできる

[not solved] kernel panic in Mac OSX 10.13.6 (High Sierra) when execute 'vagrant up'

summary

  • vagrant up するとMacがkernel panicで落ちる
  • 結論解決策は見つからず・・・

environments

error (bug report detail)

Anonymous UUID:       C20E878D-68CA-E0D0-D81A-175D52F599D4

Mon Feb 25 14:48:26 2019

*** Panic Report ***
panic(cpu 1 caller 0xffffff8001ebc02d): "a freed zone element has been modified in zone kalloc.16: expected 0xe4988e9305cd75a6 but found 0xffffff805b2f48c0, bits changed 0x1b6771135ee23d66, at offset 0 of 16 in element 0xffffff80525bd3f0, cookies 0x3f0011fb42320f92 0x53521879952c4db"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/xnu/xnu-4570.71.22/osfmk/kern/zalloc.c:1122
Backtrace (CPU 1), Frame : Return Address
0xffffff921388b450 : 0xffffff8001e6e1c6 
0xffffff921388b4a0 : 0xffffff8001f96a74 
0xffffff921388b4e0 : 0xffffff8001f88d44 
0xffffff921388b550 : 0xffffff8001e201e0 
0xffffff921388b570 : 0xffffff8001e6dc3c 
0xffffff921388b6a0 : 0xffffff8001e6d9fc 
0xffffff921388b700 : 0xffffff8001ebc02d 
0xffffff921388b760 : 0xffffff8001ebb900 
0xffffff921388b7b0 : 0xffffff8001eba303 
0xffffff921388b8e0 : 0xffffff8001e79c14 
0xffffff921388b950 : 0xffffff800245ea77 
0xffffff921388b980 : 0xffffff7f8739e981 
0xffffff921388ba20 : 0xffffff7f84904a70 
0xffffff921388ba90 : 0xffffff7f84905bc7 
0xffffff921388bad0 : 0xffffff80024c2268 
0xffffff921388bb20 : 0xffffff7f84905d3e 
0xffffff921388bb70 : 0xffffff80024cae57 
0xffffff921388bcb0 : 0xffffff8001f443c4 
0xffffff921388bdc0 : 0xffffff8001e736e0 
0xffffff921388be10 : 0xffffff8001e50a3d 
0xffffff921388be60 : 0xffffff8001e6354b 
0xffffff921388bef0 : 0xffffff8001f72f1d 
0xffffff921388bfa0 : 0xffffff8001e209e6 
      Kernel Extensions in backtrace:
         com.apple.iokit.IOAcceleratorFamily2(378.26)[AE312652-F3AF-3BFD-AEFF-FE4CCCC33BA9]@0xffffff7f848e7000->0xffffff7f8497efff
            dependency: com.apple.driver.AppleMobileFileIntegrity(1.0.5)[F314E6BA-45C5-3D8B-A3BF-C4CAE13DDADC]@0xffffff7f82d44000
            dependency: com.apple.iokit.IOSurface(211.15)[37BCC686-AF99-3381-AC4F-E54A347E0F40]@0xffffff7f848cf000
            dependency: com.apple.iokit.IOPCIFamily(2.9)[D91E9813-9717-31B8-BFE5-2F3A00F375F3]@0xffffff7f82694000
            dependency: com.apple.iokit.IOGraphicsFamily(519.21)[E5B53C5D-BF6E-3D72-9091-A80DFE5426C9]@0xffffff7f83ef9000
         com.apple.driver.AppleIntelKBLGraphics(10.3.6)[3630EB8C-0729-3B83-B28B-578B5A0B33E6]@0xffffff7f87336000->0xffffff7f8742cfff
            dependency: com.apple.iokit.IOSurface(211.15)[37BCC686-AF99-3381-AC4F-E54A347E0F40]@0xffffff7f848cf000
            dependency: com.apple.iokit.IOPCIFamily(2.9)[D91E9813-9717-31B8-BFE5-2F3A00F375F3]@0xffffff7f82694000
            dependency: com.apple.iokit.IOGraphicsFamily(519.21)[E5B53C5D-BF6E-3D72-9091-A80DFE5426C9]@0xffffff7f83ef9000
            dependency: com.apple.iokit.IOAcceleratorFamily2(378.26)[AE312652-F3AF-3BFD-AEFF-FE4CCCC33BA9]@0xffffff7f848e7000

BSD process name corresponding to current thread: WindowServer

Mac OS version:
17G5019

Kernel version:
Darwin Kernel Version 17.7.0: Thu Dec 20 21:47:19 PST 2018; root:xnu-4570.71.22~1/RELEASE_X86_64
Kernel UUID: 4A5298BF-709E-37DF-B7F0-4298065CC266
Kernel slide:     0x0000000001c00000
Kernel text base: 0xffffff8001e00000
__HIB  text base: 0xffffff8001d00000
System model name: MacBookPro14,2 (Mac-CAD6701F7CEA0921)

System uptime in nanoseconds: 9644015676324
last loaded kext at 8686931640357: com.trendmicro.kext.filehook	2.2.0 (addr 0xffffff7f84bd8000, size 200704)
last unloaded kext at 8683980879831: com.trendmicro.kext.filehook	2.2.0 (addr 0xffffff7f87645000, size 163840)
loaded kexts:
com.trendmicro.kext.filehook	2.2.0
com.trendmicro.kext.KERedirect	2.2.0
org.virtualbox.kext.VBoxNetAdp	6.0.4
org.virtualbox.kext.VBoxNetFlt	6.0.4
org.virtualbox.kext.VBoxUSB	6.0.4
org.virtualbox.kext.VBoxDrv	6.0.4
com.apple.driver.AppleHDAHardwareConfigDriver	281.52
com.apple.driver.usb.AppleUSBHostBillboardDevice	1.0
com.apple.filesystems.smbfs	3.2.3
com.apple.driver.AppleGraphicsDevicePolicy	3.20.14
com.apple.AGDCPluginDisplayMetrics	3.20.0
com.apple.driver.AudioAUUC	1.70
com.apple.driver.AppleHV	1
com.apple.iokit.IOUserEthernet	1.0.1
com.apple.iokit.IOBluetoothSerialManager	6.0.7f12
com.apple.driver.AppleUpstreamUserClient	3.6.5
com.apple.driver.ApplePlatformEnabler	2.7.0d0
com.apple.driver.AGPM	110.23.37
com.apple.driver.X86PlatformShim	1.0.0
com.apple.driver.pmtelemetry	1
com.apple.driver.AppleIntelKBLGraphics	10.3.6
com.apple.Dont_Steal_Mac_OS_X	7.0.0
com.apple.driver.AppleHDA	281.52
com.apple.driver.AppleBacklight	170.12.6
com.apple.driver.AppleThunderboltIP	3.1.1
com.apple.driver.AppleIntelKBLGraphicsFramebuffer	10.3.6
com.apple.driver.AppleIntelPCHPMC	2.0.1
com.apple.driver.AppleOSXWatchdog	1
com.apple.driver.AppleEmbeddedOSSupportHost	1
com.apple.driver.AirPort.BrcmNIC	1241.31.1a9
com.apple.driver.eficheck	1
com.apple.driver.AppleMCCSControl	1.5.5
com.apple.driver.AppleIntelSlowAdaptiveClocking	4.0.0
com.apple.filesystems.autofs	3.0
com.apple.driver.AppleHIDALSService	1
com.apple.filesystems.apfs	748.51.0
com.apple.filesystems.hfs.kext	407.50.6
com.apple.AppleFSCompression.AppleFSCompressionTypeDataless	1.0.0d1
com.apple.BootCache	40
com.apple.AppleFSCompression.AppleFSCompressionTypeZlib	1.0.0
com.apple.AppleSystemPolicy	1.0
com.apple.driver.AppleTopCaseHIDEventDriver	135
com.apple.driver.AppleSmartBatteryManager	161.0.0
com.apple.driver.AppleACPIButtons	6.1
com.apple.driver.AppleRTC	2.0
com.apple.driver.AppleSMBIOS	2.1
com.apple.driver.AppleACPIEC	6.1
com.apple.driver.AppleAPIC	1.7
com.apple.nke.applicationfirewall	183
com.apple.security.TMSafetyNet	8
com.apple.security.quarantine	3
com.apple.driver.usb.cdc.acm	5.0.0
com.apple.iokit.IOUSBUserClient	900.4.1
com.apple.driver.AppleGraphicsControl	3.20.14
com.apple.iokit.IOAVBFamily	683.1
com.apple.plugin.IOgPTPPlugin	680.15
com.apple.iokit.IOEthernetAVBController	1.1.0
com.apple.driver.AppleSSE	1.0
com.apple.driver.DspFuncLib	281.52
com.apple.kext.OSvKernDSPLib	526
com.apple.driver.AppleBacklightExpert	1.1.0
com.apple.iokit.IONDRVSupport	519.21
com.apple.AppleGPUWrangler	3.20.0
com.apple.driver.AppleHDAController	281.52
com.apple.iokit.IOHDAFamily	281.52
com.apple.iokit.IOAudioFamily	206.5
com.apple.vecLib.kext	1.2.0
com.apple.AppleGraphicsDeviceControl	3.20.14
com.apple.iokit.IOAcceleratorFamily2	378.26
com.apple.iokit.IOSurface	211.15
com.apple.iokit.IOBluetoothHostControllerUARTTransport	6.0.7f12
com.apple.iokit.IOBluetoothHostControllerTransport	6.0.7f12
com.apple.driver.AppleIntelLpssUARTv1	3.0.60
com.apple.driver.AppleIntelLpssUARTCommon	3.0.60
com.apple.driver.AppleOnboardSerial	1.0
com.apple.iokit.IOSkywalkFamily	1
com.apple.iokit.IOSerialFamily	11
com.apple.iokit.IO80211Family	1200.12.2
com.apple.driver.mDNSOffloadUserClient	1.0.1b8
com.apple.driver.corecapture	1.0.4
com.apple.driver.X86PlatformPlugin	1.0.0
com.apple.driver.IOPlatformPluginFamily	6.0.0d8
com.apple.driver.AppleSMBusController	1.0.18d1
com.apple.iokit.IOGraphicsFamily	519.21
com.apple.iokit.IOSlowAdaptiveClockingFamily	1.0.0
com.apple.kext.triggers	1.0
com.apple.driver.usb.IOUSBHostHIDDevice	1.2
com.apple.driver.usb.cdc.ecm	5.0.0
com.apple.driver.usb.cdc.ncm	5.0.0
com.apple.driver.usb.AppleUSBiBridge	1.0
com.apple.driver.usb.cdc	5.0.0
com.apple.driver.usb.networking	5.0.0
com.apple.driver.usb.AppleUSBHostCompositeDevice	1.2
com.apple.driver.AppleUSBHostMergeProperties	1.2
com.apple.filesystems.hfs.encodings.kext	1
com.apple.driver.AppleActuatorDriver	1614.1
com.apple.driver.AppleHIDKeyboard	205.1
com.apple.driver.AppleHSBluetoothDriver	135
com.apple.driver.IOBluetoothHIDDriver	6.0.7f12
com.apple.iokit.IOBluetoothFamily	6.0.7f12
com.apple.driver.AppleMultitouchDriver	1614.1
com.apple.driver.AppleInputDeviceSupport	1614.11
com.apple.driver.AppleHSSPIHIDDriver	53
com.apple.driver.AppleThunderboltDPInAdapter	5.5.5
com.apple.driver.AppleThunderboltDPAdapterFamily	5.5.5
com.apple.driver.AppleThunderboltPCIDownAdapter	2.1.3
com.apple.driver.AppleHPM	3.1.3
com.apple.driver.AppleIntelLpssI2CController	3.0.60
com.apple.driver.AppleHSSPISupport	53
com.apple.driver.AppleThunderboltNHI	4.7.3
com.apple.iokit.IOThunderboltFamily	6.7.9
com.apple.driver.AppleIntelLpssSpiController	3.0.60
com.apple.driver.AppleIntelLpssDmac	3.0.60
com.apple.iokit.IONVMeFamily	2.1.0
com.apple.driver.AppleIntelLpssI2C	3.0.60
com.apple.driver.AppleIntelLpssGspi	3.0.60
com.apple.driver.usb.AppleUSBXHCIPCI	1.2
com.apple.driver.usb.AppleUSBXHCI	1.2
com.apple.driver.usb.AppleUSBHostPacketFilter	1.0
com.apple.iokit.IOUSBFamily	900.4.1
com.apple.driver.AppleEFINVRAM	2.1
com.apple.driver.AppleEFIRuntime	2.1
com.apple.iokit.IOSMBusFamily	1.1
com.apple.iokit.IOHIDFamily	2.0.0
com.apple.security.sandbox	300.0
com.apple.kext.AppleMatch	1.0.0d1
com.apple.driver.DiskImages	480.60.2
com.apple.driver.AppleFDEKeyStore	28.30
com.apple.driver.AppleEffaceableStorage	1.0
com.apple.driver.AppleKeyStore	2
com.apple.driver.AppleUSBTDM	439.70.3
com.apple.driver.AppleMobileFileIntegrity	1.0.5
com.apple.iokit.IOUSBMassStorageDriver	140.70.2
com.apple.iokit.IOSCSIBlockCommandsDevice	404.30.2
com.apple.iokit.IOSCSIArchitectureModelFamily	404.30.2
com.apple.iokit.IOStorageFamily	2.1
com.apple.driver.AppleCredentialManager	1.0
com.apple.driver.KernelRelayHost	1
com.apple.iokit.IOUSBHostFamily	1.2
com.apple.driver.usb.AppleUSBCommon	1.0
com.apple.driver.AppleBusPowerController	1.0
com.apple.driver.AppleSEPManager	1.0.1
com.apple.driver.IOSlaveProcessor	1
com.apple.iokit.IOTimeSyncFamily	680.15
com.apple.iokit.IONetworkingFamily	3.4
com.apple.iokit.IOReportFamily	31
com.apple.driver.AppleACPIPlatform	6.1
com.apple.driver.AppleSMC	3.1.9
com.apple.iokit.IOPCIFamily	2.9
com.apple.iokit.IOACPIFamily	1.4
com.apple.kec.pthread	1
com.apple.kec.Libm	1
com.apple.kec.corecrypto	1.0

EOF

solution

見つからず...

Apple Communityを探した・・・
ただBacktraceで出てきているpackageが異なったり、エラー内容が異なるものが多かった・・・

uninitialized constant Pry::Prompt (NameError)

summary

  • ruby 2.1.2 ( ←古くね? )でbundle installしたらpry-railsでエラーでた
  • pryを(何故か)version固定にしていたことに引きづられているようだった

environments

Gemfile(抜粋)

source 'https://rubygems.org'

gem 'pry', '0.9.10' # 結果的にこいつがいけなかった
gem 'pry-rails'

error

$ bundle install --path vendor
$ bundle exec rails c
/home/yusuken/git/test/vendor/ruby/2.1.0/gems/pry-rails-0.3.5/lib/pry-rails/prompt.rb:36:in `<module:PryRails>': uninitialized constant Pry::Prompt (NameError)

solution

同じようなissueが切られていた。
github.com

要はbundle updateしなさいよ、ということでした。

ただ、今回はGemfileにてpryのversionを固定していたので、そいつを外してあげればよかった。(指定を外すと、0.10系のpryが入り、pry-rails0.3.9 になり、少しversion変わりました。

その他

とりあえずruby 2.1.2はアップデートしたい・・・・

references

embulk-input-jira で undefined method `positive?` for hoge:Float (NoMethodError)

summary

  • embulk-input-jira 0.2.5を使うと表題のエラー出た
  • Embulkの0.9系をつかうべし(Jruby9.0系 = Ruby 2.2系互換に Float#positive?は実装されていない模様)

environment

yaml

# config.yml
in:
  type: jira
  username: xxx
  password: xyy
  uri: https://domain.atlassian.net
  jql: project = TEST
  columns:
    - {name: id, type: long}
    - {name: key, type: string}
    - {name: issuetype.name, type: string}
    - {name: status.name, type: string}
    - {name: created, type: timestamp, format: '%%Y-%%m-%%dT%%H:%%M:%%S'}
    - {name: updated, type: timestamp, format: '%%Y-%%m-%%dT%%H:%%M:%%S'}
    - {name: resolutiondate, type: timestamp, format: '%%Y-%%m-%%dT%%H:%%M:%%S'}
    - {name: assignee.name, type: string}
out:
  type: redshift
  host: xxxy
  user: yyyy
  password: zzzz
  database: uuuu
  schema: tttt
  aws_secret_access_key: test
  aws_access_key_id: test
  s3_bucket: test
  s3_key_prefix: tmp/test
  mode: insert

Gemfile

source 'https://rubygems.org'

gem 'embulk-input-jira'
gem 'embulk-output-redshift'

起こったこと

実行したコマンド

embulk bundle install
embulk run config.yml

エラー

....
2018-12-19 20:56:37.778 +0900 [WARN] (0017:task-0000): [1/5] Retrying after 3 seconds. Ocurred: undefined method `positive?' for -1545220595.742:Float(NoMethodError)
2018-12-19 20:56:43.368 +0900 [WARN] (0017:task-0000): [2/5] Retrying after 5 seconds. Ocurred: undefined method `positive?' for -1545220601.332:Float(NoMethodError)
2018-12-19 20:56:50.552 +0900 [WARN] (0017:task-0000): [3/5] Retrying after 9 seconds. Ocurred: undefined method `positive?' for -1545220608.539:Float(NoMethodError)
2018-12-19 20:57:01.783 +0900 [WARN] (0017:task-0000): [4/5] Retrying after 17 seconds. Ocurred: undefined method `positive?' for -1545220619.759:Float(NoMethodError)
2018-12-19 20:57:21.530 +0900 [WARN] (0017:task-0000): [5/5] Retrying after 33 seconds. Ocurred: undefined method `positive?' for -1545220639.508:Float(NoMethodError)
2018-12-19 20:57:57.508 +0900 [INFO] (0001:transaction): {done:  1 / 1, running: 0}
org.embulk.exec.PartialExecutionException: org.jruby.exceptions.RaiseException: (TooManyRetry) too many retry (5 times)
....

positive? がないか確認

embulk irb
2018-12-19 21:25:48.583 +0900: Embulk v0.8.9
irb(main):001:0> JRUBY_VERSION
=> "9.0.5.0"
irb(main):002:0> -1545220595.742.positive?
NoMethodError: undefined method `positive?' for -1545220595.742:Float
        from (irb):2:in `<eval>'
        from org/jruby/RubyKernel.java:976:in `eval'
        from org/jruby/RubyKernel.java:1287:in `loop'
        from org/jruby/RubyKernel.java:1096:in `catch'
        from org/jruby/RubyKernel.java:1096:in `catch'
        from /Users/nakayama-yusuke/.embulk/bin/embulk-0.8!/embulk/command/embulk_run.rb:215:in `run'
        from /Users/nakayama-yusuke/.embulk/bin/embulk-0.8!/embulk/command/embulk_main.rb:2:in `<top>'
        from org/jruby/RubyKernel.java:937:in `require'
        from uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1:in `(root)'
        from file:/Users/nakayama-yusuke/.embulk/bin/embulk-0.8!/embulk/command/embulk_bundle.rb:51:in `<top>'

解決策

  • embulk 0.9 系にする
$ embulk selfupdate 0.9.11

Gemfile

source 'https://rubygems.org'

gem 'embulk' # 0.9系は必要
gem 'embulk-input-jira'
gem 'embulk-output-redshift'

COPYコマンド実行したら 1214 : Delimited value missing end quote

まとめ

  • s3からcopyコマンドでRedshiftにデータをいれようとしたら Delimited value missing end quoteと怒られた
  • どうやらあるカラムで quote文字( ' or " ) で始まってしまっているようで、文字通りのエラーがでたということらしい
  • データ集計上差し支えなかったので、s3にputする前にその文字はなくすようにした

背景

APIで取ってきたデータをscriptでゴニョゴニョ(整形、gz化)してs3にputしていた。

エラー内容

いつもお世話になっている stl_load_errors テーブルを見に行くと、表題のエラーが。おうふ。

testdb =# select * from stl_load_errors order by starttime desc;
-[ RECORD 1 ]---+-------------------------------------------
userid          | 100
slice           | 5
tbl             | 1153098
starttime       | 2018-08-12 03:24:34.045987
session         | 17447
query           | 2225
filename        | s3://hogehoge.tsv.gz
line_number     | 405
colname         | error_col
type            | varchar
col_length      | 255
position        | 281
raw_line        | id hoge fuga moga ...... moge error_col num
raw_field_value | moge error_col num
err_code        | 1214
err_reason      | Delimited value missing end quote

原因

当該カラムの値を確認

$ aws s3 cp s3://hogehoge.tsv.gz ./ && gzip -d hogehoge.tsv.gz
$ grep id hogehoge.tsv # idは上記のraw_lineからわかるので
id hoge fuga moga ..... moge 'free text num

なんか ' が入っていました。
'16とか '17といった表記が時々西暦の年を表す際に使われますが、それが最初に含まれていたせいでした。

対処

今回は別にそれらの ' は消してよいので、そういう処理を施してs3にputするようにしました。

ひとこと、ふたこと

フリーテキストを扱うのって結構たいへんですね。。汗汗
はてな記法をしれてよかった。

iterm2 で enter が ^M として出力される場合の対処法

まとめ

  • enter打つと^Mとなって改行にならなくなった
  • "stty sane" で解消した

環境

  • MacOS HighSierra
  • iTerm2 3.1.5

おこったこと

Macで作業していてcpした際にoverwriteするかどうか聞かれて を押してenter したら改行(確定)にならず、^Mが無限に打たれてしまった。

$ cp /Users/yusuken/hoge.csv /Users/yusuken/Downloads/

overwrite /Users/yusuken/Download/shoge.csv? (y/n [n]) y^M^M...

対処

下記コマンドで解消しました。

$ stty sane

コマンドの意味はあとで調べる

 

The server quit without updating PID file

The server quit without updating PID file 

まとめ

  • pidファイルを更新せずに終わったよ!ってエラー
  • /usr/local/var/mysqlを一旦消してmysql インストールし直したら行けた 

環境

状況

mysql が開始できない

$ mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/nakayama-yusuke-2.local.pid).

試したこと

その1:pid ファイル touch & chown

 

その2:mysqld_safe

$ mysqld_safe
2018-08-10T01:57:22.6NZ mysqld_safe Logging to '/usr/local/var/mysql/nakayama-yusuke-2.local.err'.
2018-08-10T01:57:23.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2018-08-10T01:57:23.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/nakayama-yusuke-2.local.pid ended 

対処

$ sudo rm -rf /usr/local/var/mysql
$ brew unlink mysql@5.7
$ brew uninstall mysql@5.7
$ brew install mysql@5.7
$ brew link mysql@5.7

(unlink/linkは念の為。たぶんいらない) 

その他

pidファイルとは?

MySQLのserverがProcess IDを記述するファイルだそう。(もうこのファイルを利用する仕組み調べたい)

 

written by yusuken