2012年11月03日

GitLabで日本語ファイル名周り(3.0.3)

前回のエントリでGitLabの2.4.0で日本語ファイル名のソースを表示するためのヒントを書きましたが、GitLab 3.0.3にバージョンアップしてみたところ今度は日本語ファイルのURLが化けたり、一部のフォルダが開けなくなる現象に遭遇しました。

まず、日本語ファイル名のURLが化けるのはソースを開こうとしたタイミングでしかもJavaScriptを有効にした場合だけです。

そのあたりから探っていったところ、どうもシームレスな画面遷移時にJavaScriptでブラウザの「戻る」の制御を行う「vendor/assets/javascripts/jquery.history.js」が原因だということが判明。

このソース、ライセンス表記などが無く、ネット上にも情報がないのでどこにバグ報告をすべきなのか不明なのですが、URLエンコードの復元にunescape関数を用いているため、1Byte文字圏でしかまともに動作しません。

しかも、デフォルトでミニファイ化されていコードが読みにくくなっているのですが、幸いにもunescapeを使っているところが1箇所しか無いためそれを「encodeURI」関数に置き換えることでキチンと動作するようになります。

で、この修正だけでほとんどのファイルやフォルダが問題が無くなったのですが、それでも一部のフォルダではencode errorと表示されるため、更に調べたところ「app/views/tree/_tree_item.html.haml」の内部で呼び出しているtree_join関数にてクラッシュしていることが判明。

で、こういう場合のお約束として下記の修正を実行したところ、あっさり表示出来るようになりました。

1
2
3
4
5
6
7
8
9
10
11
--- a/app/views/tree/_tree_item.html.haml
+++ b/app/views/tree/_tree_item.html.haml
@@ -1,7 +1,7 @@
 %tr{ class: "tree-item #{tree_hex_class(tree_item)}" }
   %td.tree-item-file-name
     = tree_icon(type)
-    %strong= link_to truncate(tree_item.name, length: 40), project_tree_path(@project, tree_join(@id || @commit.id, tree_item.name))
+    %strong= link_to truncate(tree_item.name, length: 40), project_tree_path(@project, tree_join(@id || @commit.id, tree_item.name.force_encoding('UTF-8')))
   %td.tree_time_ago.cgray
     %span.log_loading.hide
       Loading commit data...

困っている方はお試しあれ。

それにしてもruby 1.9は.force_encoding('UTF-8')をやらないとまともに文字列を扱えないことが多くて面倒な感じがします。

型とかガチガチに処理するような言語じゃないのだから、エンコードについてももっと上手く暗黙的に処理して欲しいものです。

Posted by Takuchan at 22:44 | コメント (0) | トラックバック(0)

2012年05月20日

GitLabで日本語ファイル名のソース表示

最近git環境の構築を頑張っていますが、ちょうどいいタイミングでmsysGitやTortoiseGITの日本語ファイル名対応が始まったので、Windowsにも本格的にGit環境を構築始めました。

現在の環境はこんな感じです。

プロンプトConsole2 + 日本語入力パッチ適用済みバイナリ
シェルNYAOS
gitmsysGit
サーバ側GitLab + gitolite

正直Windows側もサーバ側も構築は一筋縄ではいかないので、まだまだおすすめできませんが、上記をうまいこと設定できるとUTF-8で統一できている限り、日本語が通るGit環境が構築できます。

ただし、テストしていて気になったのが、GitLabで日本語ファイル名のソースコードが表示されない点。

すでにバグとして報告されていますが、

ソースを追ったところ、利用しているgrit側の問題っぽい気がしています。

続きを読む...

Posted by Takuchan at 09:38 | コメント (0) | トラックバック(0)

2011年05月11日

ESXi4.1でUSBインストールの余り領域を使う

VMware ESXiをUSBメモリにインストールする際には2GBもあればいいのですが、そのぐらいのサイズのUSBメモリは最近は入手がしにくく、結局4GBや8GBのUSBメモリを使うハメになります。

しかし、実際に使われる領域は1GB程度なのでそれ以外のUSBメモリの領域は空き領域として無駄になります。

まぁ、ここでVMFS3とかでフォーマット出来ればいいのですが、少なくてもESXi 4.1 Update1ではUSBメモリの空き領域をVMFSでフォーマットすることは出来ません。

(vSphireClientから見えないのはもちろん、sshからmkfstoolsで-C vmfs3してもvmkernel is not loaded or call not implemented. とか言うエラーで失敗します。)

じゃぁ、他のPCで空き領域にパーテーションを作成→フォーマットしてそれをmountコマンドで認識させようとしても、今度は「No such device」というエラーで失敗します。
(ちなみに、/homeの下などでは、上記のエラー以前にNo such file or directory.等と言われます。)

これは、ESXiが下記のコメントのように一部のフォーマットにしか対応していないためです。

「FATならOKなのね」と普通にFATでフォーマットしてもこれまた認識しません。

なぜなら、ESXiで認識出来るのはFAT16(最大1パーティーション4GBまで)なので、自分でフォーマットする場合にFAT16になるように意識しないとダメになります。

また、ESXiをUSBメモリにインストールをするとかなり変なパーテーショニングをされてしまうため、Windowsからパーテーションの操作をすると設定がおかしくなります。(と言うかなりました(^^;)

なので、Windows PCしかない人はUbuntuのライブCD等でLinuxを起動してから作業を行ってください。
(ESXiのbusybox環境にはfdiskはありますがmkfsコマンド自体が無いのでこの作業には必ずLinuxが必要です)

続きを読む...

Posted by Takuchan at 00:20 | コメント (0) | トラックバック(0)

2011年05月09日

ESXi4.xでデータストアが削除出来ない場合

と言うVMware ESXiでのATF最適化の英文記事をみて、試してみようと思ったのですが、vSphireClientのホストの「構成」タブ→「ストレージ」から既存のデータストアを削除しようとすると。
エラー:リソース 'hogehoge' は使用中です。 エラー スタック ESXi「xxx.xxx.xxx.xxx」で オブジェクト「ha-datastoresystem」の「HostDatastoreSystem.RemoveDatastore」 の呼び出しが失敗しました。
なんて言うエラーで怒られてしまいました。

それなら、SSHから削除すればいいかと、fdiskで「d」してみても消えない。

で、時々busyのようなエラーがあったので調べてみたら、どうもESXi上の「/scratch」のリンク先になっているところは消せない仕様のようです。

で、/scratchの変更方法ですが、以下の通りです。

続きを読む...

Posted by Takuchan at 23:08 | コメント (0) | トラックバック(0)

2009年12月15日

ext4のjournal_checksumはNG

  • ext4にはジャーナルチェックサムという機能があり、ジャーナルログにチェックサムを付加することができます。これにより、ハード障害やカーネルバグによってトランザクションログ破損が発生した状況では、fsckが不正トランザクションデータをロールフォワードしてしまうことによりファイルシステムを破壊してしまう状況を防ぐことができます。

     このチェックサム機能、従来はオプション機能だったのですが、今回のマージウィンドウでオプション扱いではなくなり、デフォルトでenableに変更されました。ところが、ジャーナルログが一周した場合の考慮が抜けている個所があり、ジャーナルが一周したところでリブートすると、チェックサムエラーが発生し、おかしなことになっていました。

と言うことで少なくても2.6.32ぐらいまでのカーネルではext4のjournal_checksumオプションは使わない方が良いようです。

revertされたパッチは、こちらによると↓のパッチのようなので、journal_checksumオプションがext4に無い場合には要注意至急対策が必要なようですね。

ひとまず、openSUSE 11.2のISOの中のカーネルではこのオプションがありそうなので、大丈夫だとおもいますが、どちらにしてもjournal_checksumオプションには注意しないといけないようです。

(と言うか、まだext4を使うのは早いですかね(^^;)

Posted by Takuchan at 01:06 | コメント (0) | トラックバック(0)

2007年11月17日

SPFの効果

さて下のエントリで設定したSPFですが効果は劇的でした。

16日の0:30頃に設定を行ったんですが、

2007/11/133318
2007/11/143109
2007/11/152188
2007/11/1681
2007/11/1744
結果は一目瞭然です(笑)

とりあえず、ドメインを詐称された場合は兎にも角にもSPF設定で決まりではないでしょうか?

Posted by Takuchan at 23:54 | コメント (0) | トラックバック(0)

2007年11月16日

SPFで対抗してみます

下のエントリの続き

さて、今日もびしばしメール届いて居るんだろうなぁと思ったら何故か昨日8時頃に1時間900通程度のピークがあったあと減少傾向。

喜ばしいことですが、このまま手をこまねいているのもアレなので、とりあえずSPFを導入してみました。

これで、ドメイン詐称されていた場合も、その旨が相手に伝わるんじゃないかと思います。
(と信じたい・・・)

設定の際は

を参考にさせて頂きました。

っていうか、出口になるメールサーバが不定な上、妙なアドレス体系なので結局列挙することに。

txt @ v=spf1 +ip4:XXX.XXX.XXX.XX1 +ip4:XXX.XXX.XXX.XX2 +ip4:XXX.XXX.XXX.XX3 include:gmail.com ~all
のような感じになってますが、これでちゃんと効いてるんでしょうか(^^;

まぁ、このドメインじゃほとんどメール出さないんでしばらくこれで運用してみようと思います。

Posted by Takuchan at 23:33 | コメント (0) | トラックバック(0)

2007年11月15日

ドメインを詐称に利用される

下のエントリの続き

どうもKDDIが悪いわけではなくて管理している.comドメインを詐称されてspamメールが送られている"らしい"ですorz

今日ログを見ていてほとんどのメールがFromが空(from=<>)だったのでやっとその可能性に気がつきました。
(そもそも、4日間で14000通/7000ホストも帰ってきているので、実際送られて利用者に受信されてしまたメールはもっと多い気がします)

とりあえず、こちらとして打つ手が全く思いつかないので、少し様子を見てみるつもりです。

っていうか、気が付けばドメインの期限切れまで1年無いし、酷いようなら放出も有りかなぁ。

はぁ・・・(´・ω・`)

Posted by Takuchan at 00:36 | コメント (0) | トラックバック(0)

2007年11月14日

ezwebからSMTPにDoS

KDDIってどうなってるんでしょうか?。

# grep "Nov 13 22:09" maillog | grep "wmflb12na02.ezweb.ne.jp"|wc -l
308
おかげさまでバックエンドとのセッション埋まってメールの取り逃しが発生orz

配送先をMySQLから取得しているんですが

postfix/cleanup[5441]: warning: 7EA3812EF: virtual_alias_maps map lookup problem for XXXXX@XXXXX.XXX
なんて言うログが出てpostmastar宛に
451 Error: queue file write error
が届きました。

もういっぺん喰らったらezweb(222.15.69.)からは当分IP Banです。
(知り合いも居るけどそんなのかんけーね(笑))

っていうか、まともに対策しようと思ったらPostfixを2.3台に上げないと始まらないなぁ・・・

続きを読む...

Posted by Takuchan at 01:20 | コメント (0) | トラックバック(0)

2006年07月31日

今入れるならこのDistribution

久々に完全新規でLinuxでサーバ構築することになったので、どのディストリビューションにするか検討を行いました。

とりあえず、時間的制約の関連と純粋な慣れからDebian系は今回は回避しました。
(時間があればUbuntu Linux辺りは試してみたかったのですが)

あと、今後商用パッケージ入れる可能性があったので、あんまり変な構成じゃないヤツと言うことで、最初RedHatELの独自ビルド版のCent OSを入れようかと思ったのですが、XFSで入れたかったのと、どうも構成が古いので却下(笑)

(っていうか、Redhat系の進化はここ2年は確実に止まってますね。
これで構成組んでたら浦島太郎必死なので、RHELばっかりくんでる人は要注意だと思いました)

で、XFSでインストールできると言うことで選んだのはSUSE Linux

実は、これまで入れたこと無かったのですが、今回10.1を入れてみたところ、なかなか良い感じ。

最新技術もふんだんに取り入れられている(Apache2.2が入ってたのには面食らいましたが)ので、技術を磨くのにも良さそうです。
あと、RPMでchkconfigが効くというのも個人的に安心感があって良いです(笑)

と言うわけでしばらくSUSE使いなる予定ですの先輩諸兄よろしくお願い致します∠( ̄∩ ̄) ビシッ

Posted by Takuchan at 23:59 | コメント (0) | トラックバック(0)

その他のエントリ
日本公式NTP 2006年06月19日 03:09

NICT、日本標準時と直結したNTPサーバー「ntp.nict.jp」を一般公開というわけで早速手元のNTPdの設定を書き換えることにしました。 で、書き換える場合はNICT NTP FAQntpd の場合 (Linux や FreeBSD など)
/etc/ntp.conf に次の3行を加えてください。
server -4 ntp.nict.jp
server -4 ntp.nict.jp
server

devfs削除 2005年08月31日 23:59

@IT:Linux Kernel Watch 8月版 割り込み頻度変更で消費電力は低下するか?(1/2)ついに来た、devfs削除の波紋というわけで最新カーネルではdevfsが削除のようです。 まぁ、一般的な用途にはちゃんとudevという代替があっての削除なので、普通に使ってる人には問題ありませんが、組込み系とかではいろいろと大変なよう

運転丸1年 2004年12月13日 15:51

手元のマシンですが、$ uptime
10:31am up 366 days, 8:12, 2 users, load average: 0.07, 0.02, 0.00閏日入れても丸一年運転しました(笑) このマシン、グローバルIPを持っていて直接インターネットに繋がっているマシンなんですが、こんな環境でもLinuxって一度安定しちゃうと本当に落とす必要無くなりますね

Vine3.0リリース 2004年08月05日 10:26

Vine Linux Home PageVine Linux 3.0 リリース Vine Linux 3.0 (i386) をリリースしました。
ppc, alpha は近日中にリリースされる予定です
Vine Linux 2.6r4 からの変更点(抜粋)
主要コンポーネントのバージョンアップ
- kernel-2.4.26, glibc-2.3.3, gcc-3.3.2, X.Org X11 6.7.0,
Gtk -

Plamo 4.0 2004年06月29日 19:27

Plamo 4.0 informationPlamo 4.0 が 2004/06/25 に正式リリースされました. 2.4系カーネルですがその分安定リリースという感じがします。 Plamo Linux 4.0リリース - NEC PC98のサポートは打ち切り (MYCOM PC WEB)他のLinuxディストリビューションがウィンドウシステムをX.Org X11に置き換えているが、引き続きXFree86(4.4

Fedora Core 2出てました 2004年05月26日 16:30

ITmediaニュース:「Fedora Core 2」リリース忙しさにかまけていたら何時のまにやらリリースされていたようです。 で、どんな感じかなぁとネットでちょっと情報集めて見たらスラッシュドット ジャパン | カーネル2.6でHDD内の他のOSが起動しなくなる可能性WindowsXPにデュアルブートでインストールしようとして,Windows XP

主キーの長さ制限 2004年02月16日 16:45

MySQLでのお話 以下のようなテーブルを作ろうと思ったらあっさり怒られるCREATE TABLE DB.Table1 (
aaa VARCHAR(255) NOT NULL ,
bbb VARCHAR(255) NOT NULL ,
ccc TIMESTAMP NOT NULL ,
ddd TIMESTAMP NOT NULL ,
PRIMARY KEY ( aaa , bbb )
);Specified key was too long. Max ke

RedHatでapt-get 2004年01月25日 02:50

Debian発祥のapt-getですが、最近RedHatでもつかるようになりました。 入手はここから インストール他については下記のサイトが参考になります。APT-HOWTO_RedHatLinux9というか、自分の調べ不足なのかもしれませんが4月からは保守されなくなるのかどうかもよくわからなくって、どうも位置づけが微妙なんでよもやま話とい

Fedora Core 1 2003年11月10日 11:00

3日リリースだったのをすっかり忘れていましたが、無償RedHatの最新版に当たる「Fedora Core 1」が数日遅れてリリースされたようです。
どうにも直前でバグが出たようですが、大丈夫なんでしょうかね? さて、こいつは位置づけ的にはレッドハット株式会社 | ニュースこのリリースは、無償で提供され、テクノロジの開

PHP・・・ 2003年11月09日 12:19

PukiWikiを動かしたいなぁと思って最新版のPHPを入れようかと思ったのですが・・・PHPのビルドって想像以上に面倒ですね(;´д`)ノ SRPMのspecを書き換えてリビルドしようかと思ったのですが、依存関係が多すぎて全部インストールするとシステムが相当汚くなりそう・・・。 おまけに古いシステムにPHP4.3.4を入れたいの

rpmで入れてたら 2003年10月22日 09:43

RedHat9でいろいろと変更してリビルドしたproftpdのRPMパッケージを入れてたら、あるマシンで起動する際にStarting proftpd: execvp: No such file or directory [FAILED]なるエラーに遭遇 他のマシンじゃうまくいっているだけに変だなぁとぐぐってみても有益な情報はなし。 いろいろ考えていて思い出す。
「そう

uniqコマンドのヘルプ 2003年10月18日 13:31

ちょっとFTPのログから特定ディレクトリからダウンロードした人のIPごとの集計をかけてみようと思ったんですが、grep ディレクトリ名 /var/log/xferlog.* | cut -d":" -f4 | cut -d" " -f4 |sort | uniq だと回数が判らないので、uniqで回数数えられなかったかなと思ってman uniqしてみると下のようなヘルプが出てきましたU

りなっくす 2003年10月17日 09:11

ある日の電話での出来事 (PC関連全く知らない人)「○○って何に入ってるんですか?」
(私)「Linuxのマシンに入ってます」
「えっ、シダックス?」
「じゃなくて、Linux」
「えっ、リラックス?」
「リ ナ ックス」
「・・・INAX?」
_| ̄|○ 人間知らない単語が耳にはいると恐ろ

Fedora Project 2003年10月06日 14:01

RedHat10で検索するとGoogleのI'm Feeling Luckyがうちのページになってしまうという分不相応な結果になっているようで放置予定の昔書いたエントリにあわてて手を加えたのですが、その際にThe Red Hat Linux Projectに飛んだつもりがFedora Project, sponsored by Red Hatに行き着いていました。 おやっと思って調べてみる

samba 3.0公開 2003年09月26日 09:43

ついにsamba 3.0がリリースされましたね。 追加された機能については下記のサイトを参考にするのがよいと思いますが、例によって日本語環境で使うと地雷がいっぱいありそうである程度枯れるまでは怖くて怖くて使えない感じです(^^;
Samba 3.0の全貌(1/2)エンタープライズ:Samba 3.0が間もなく公開にというか、個

postfixのupgrade 2003年09月24日 01:06

基本的にLinuxのパッケージ管理は全部RPMでやってるんですが、数少ない例外がpostfix 何せmake upgradeが便利すぎて・・・(笑) コレもやろうと思えばRPMで管理できるでしょうが、労力にどうもペイできそうにないので現在の所は見送ってます。 ちなみに、アップグレード手順はこんな感じ
$> make コンパイルオプシ

LinuxとXNTPd 2003年09月12日 18:02

ちょっとLinuxのXNTPdを一気に設定することになって↓のような作業を行ったのでメモ
$ /bin/su -
# /usr/sbin/ntpdate -s NTPサーバ
# /sbin/clock -w
# vi /etc/ntp.conf
----------以下のように変更--------------
#server 127.127.1.0 # local clock
#fudge 127.127.1.0

OpenVPNのメモ 2003年08月25日 10:36

はてなダイアリー - (R)日記Linux を OpenVPN サーバにするOpenVPNの詳細な手順が書いてあって大変参考になりました。 今のところSSHで事足りてますがUDPとか不定ポートな接続を使いたくなったらどうしても必要になるので早めにテストしてみたいと思ってます。 なお、その際には気になったあたりをドキュメント化した

RedHat10 β1 2003年07月23日 13:56

ついこの前RedHat9正式版が出たばっかりだと思っていたらZDNN:「Red Hat 10」β版と開発プロセス公開もう10が出ますか・・・ っていうかThe Red Hat Linux ProjectJuly 21 2003 - Beta 1 release
August 8 2003 - Stop Ship Mode starts (only StopShip bug fixes after this point)
August 18 2003 - Beta

一昨日作った 2003年07月17日 18:57

一昨日組み立てたLinuxマシンがこんなエラー吐いてLAN接続が切れました
kernel: NETDEV WATCHDOG: eth0: transmit timed out
ちなみに、使っているNICはASUS P4GE-VのオンボードNIC(ドライバは自分でコンパイルして入れたbcm4400.o)なんですが、同じ構成のマシンが3台あって以前に作った2台は問題なく動いてい

RedHat9の小ネタ(2) 2003年07月16日 10:56

RedHat7で使っていたマザーボード・CPU・NICを転用してRedHat9マシン作成したらブート時に/etc/fstabでautoにしてあるnfsをマウントしてくれなくなりました(;´д`)ノ 手動で
# mount -aするとちゃんとマウントするんで、どうもブートプロセスの関係でネットワークが確立する前にマウントしようとして失敗している

RedHat9の小ネタ(1) 2003年07月15日 18:16

やっとlftpが標準搭載されたみたいですね。
ncftpは嫌いなんで非常にうれしいです( ̄▽ ̄)ノ あと、インストール開始時からreiserfsも使えるみたいですね<[Ctrl]+[Alt]+[F2]でshellにおりないといけないみたいだけど
今度インストールする機会があったら試してみたいと思います
あと、xfsを標準でサ

LinuxBox 2003年07月03日 12:53

NTTコムウェアから小型のLinuxBoxが発売されるようです。
超小型Linuxサーバ「L-Box」販売開始小型なのはいいですが、この性能で5万円は高いですね。
特に記憶媒体がCF 32MBっていうのが何やるにしてもネックになりそうで・・・
(換装ぐらいはできるんでしょうか?) このスペックだとRS232C使ってロガー