Archive for: 𔃸月 2016’

Ruby配列で、zipを使用する

2016年8月23日 Posted by PURGE

a1 = [1,2,3,4,5]
a2 = [[1,1,],[2,2],[3,3],[4,4],[5,5]]

a12 = a1.zip(a2)
p a12    #=> [[1, [1, 1]], [2, [2, 2]], [3, [3, 3]], [4, [4, 4]], [5, [5, 5]]] 

a21 = a2.zip(a1)
p a21    #=> [[[1, 1], 1], [[2, 2], 2], [[3, 3], 3], [[4, 4], 4], [[5, 5], 5]]

Rails5アプリをBluemix でDB migrate してエラー

2016年8月19日 Posted by PURGE

ローカルの開発環境では、rake db:migrate はコマンド打てば簡単だが、Bluemix等のクラウド環境でのコマンドの実行方法が不明であった。どうやら、push するタイミングで下記のように -c オプションで可能なようだ。

$ cf push <appname> -c "bundle exec rake db:migrate"

DBを見ると、うまくマイグレーションされているようだが、その後アプリが、下記のエラーで起動しない。

ERR Instance (index 0) failed to start accepting connections

調べてみると、先ほど指定したオプションが邪魔しているようで、nullでクリアする必要があるようだ。

$ cf push <appname> -c "null"

その後、cf push で、普通通りにアプリがデプロイされて起動できた。

Read-only file system のファイルシステムエラー発生

2016年8月1日 Posted by PURGE

■現象
○SVNコミット時に下記エラーで、コミットできない。

  選択されたリソースのいくつかがコミットされませんでした。
  svn: E204900: Commit failed (details follow):
  svn: E204900: Can't create directory '/var/www/svn/repos/project/db/transactions/12345-1.txn': Read-only file system
  svn: E175002: MKACTIVITY of '/svn/repo/project/!svn/act/b2f11144-123-0010-abcd-c12345678f7': 500 Internal Server Error (http://xx.xx.xx.xx)


■原因
○svnレポジトリ他、/mydisc に対するファイル書き込みができなくなっている。

■対応内容
○/mydisc に対して再マウント ⇒ 失敗

  [root]# mount -o remount /dev/sdc1
  mount: ブロックデバイス /dev/sdc1 は書き込み禁止です、読込み専用でマウントします

○/mydisc に対してアンマウント ⇒ 失敗

  [root]# umount /dev/sdc1
  umount: /mydisc: デバイスを使用中です

○/mydisc を利用中のプロセス確認

  [root]# fuser -muv /dev/sdc1
      USER        PID ACCESS COMMAND
  /dev/sdc1:           root       2461 F.... (root)httpd
  root       5684 F.... (root)PassengerWatchd
  root       5687 F.... (root)PassengerHelper
  root       5696 F.... (root)ruby
  nobody     5700 F.... (nobody)PassengerLoggin
  apache     5720 F.... (apache)httpd
  apache     5721 F.... (apache)httpd
  apache     5722 F.... (apache)httpd
  mysql     11773 F.c.. (mysql)mysqld
  root      14145 F.... (root)java

○/mydisc を利用中の httpd / mysqld / java プロセス終了

  [root]# /etc/rc.d/init.d/httpd stop
  httpd を停止中:                                            [  OK  ]
  [root]# /etc/rc.d/init.d/mysqld stop
  MySQL を停止中:                                            [  OK  ]
  [root]# fuser -muv /dev/sdc1
  USER        PID ACCESS COMMAND
  /dev/sdc1:           root      14145 F.... (root)java
  [root]# kill -KILL 14145

○/mydisc に対してアンマウント ⇒ 成功

  [root]# umount /dev/sdc1

○マウントの確認

  [root]# mount -t ext3 /dev/sdc1 /mydisc
  [root]# mount -v
  /dev/sdc1 on /mydisc type ext3 (rw)