転載・引用について

ユーザ用ツール

サイト用ツール


tweet

つぶやき

技術系や雑感等は再編集して本文の記事にする事を前提としているので、こっちにLinkを張らないでください。

NextcloudでFileが削除できなくなった

いつの間にか2年動かしているNextCloudだが、なんか一部のファイルが削除できなくなるなどの症状が出てきた。 ちょっとググると、どうやら file が lock されているらしい。というわけで、取り急ぎの対処方法

作業手順だけ書くので、中身は各自で調べてください。

www$ sudo -u www-data php occ maintenance:mode --on
www$ psql -U user nextcloud-db-name
xxxx> DELETE FROM oc_file_locks;
xxxx> \q
www$ sudo -u www-data php occ maintenance:mode --off

要するに、oc_file_locks tableに登録されているレコードがlockされているファイルを示しているので、これを消さないと操作ができないということらしい。

· 2022/01/11 22:07 · 2022/01/11 22:07

[FreeBSD] ZFS/XCP-ng Disk増加

XCP-ng上で動かしているFreeBSDのVMにおいて、zrootの容量を増やす方法 なお、FreeBSD 11.2-RELEASEFreeBSD 13.0-RELEASE-p4で動作確認した。

  1. FreeBSD VM(以下VM)をshutdownする
    • しなくてもいいのかもしれないが、block deviceを扱うので、止めておいた方が無難だろう
  2. XCP-ng側で、Storageの容量を増やす
    • 今回は20G追加して40Gにした
  3. VMを起動する
  4. dmesgなどで、xvbdの容量を確認し容量が増えていることを確認する
    • 今回の対象Diskはada0に割り当てられている
  5. 以下の作業を実行
    • # dmesg
      (snip)
      xbd0: 40960MB <Virtual Block Device> at device/vbd/768 on xenbusb_front0
      xbd0: attaching as ada0
      (snip)
      GEOM: ada0: the secondary GPT header is not in the last LBA.
      (snip)
      # zpool set autoexpand=on zroot
      # gpart show
      =>      40  41942960  ada0  GPT  (40G) [CORRUPT]
              40      1024     1  freebsd-boot  (512K)
            1064       984        - free -  (492K)
            2048   4194304     2  freebsd-swap  (2.0G)
         4196352  37744640     3  freebsd-zfs  (18G)
        41940992      2008        - free -  (1.0M)
       
      # gpart recover ada0
      ada0 recovered
      # gpart show
      =>      40  83886000  ada0  GPT  (40G)
              40      1024     1  freebsd-boot  (512K)
            1064       984        - free -  (492K)
            2048   4194304     2  freebsd-swap  (2.0G)
         4196352  37744640     3  freebsd-zfs  (18G)
        41940992  41945048        - free -  (20G)
       
      # gpart resize -i 3 ada0
      ada0p3 resized
      # gpart show ada0
      =>      40  83886000  ada0  GPT  (40G)
              40      1024     1  freebsd-boot  (512K)
            1064       984        - free -  (492K)
            2048   4194304     2  freebsd-swap  (2.0G)
         4196352  79689688     3  freebsd-zfs  (38G)
      # zpool list
      NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
      zroot  37.5G   708M  36.8G        -         -     0%     1%  1.00x    ONLINE  -
      # zpool status
        pool: zroot
       state: ONLINE
      config:
       
              NAME        STATE     READ WRITE CKSUM
              zroot       ONLINE       0     0     0
                ada0p3    ONLINE       0     0     0
       
      errors: No known data errors
      # zpool set autoexpand=off zroot
      # zpool get autoexpand zroot
      NAME   PROPERTY    VALUE   SOURCE
      zroot  autoexpand  off     default
      #

これで終わり。

· 2021/09/27 02:03 · 2021/09/27 02:04

WireGuard for FreeBSD の(おそらく)BUG

大したBUGではないけど、見つけてしまったのだから仕方がない。

minira# diff -c wg-quick /usr/local/bin/wg-quick
*** wg-quick    Thu Aug  5 03:28:13 2021
--- /usr/local/bin/wg-quick     Mon Jul  5 06:18:56 2021
***************
*** 97,103 ****
                        SaveConfig) read_bool SAVE_CONFIG "$value"; continue ;;
                        esac
                fi
!               WG_CONFIG+="$stripped"$'\n'
        done < "$CONFIG_FILE"
        shopt -u nocasematch
  }
--- 97,103 ----
                        SaveConfig) read_bool SAVE_CONFIG "$value"; continue ;;
                        esac
                fi
!               WG_CONFIG+="$line"$'\n'
        done < "$CONFIG_FILE"
        shopt -u nocasematch
  }

見ればわかるけど、本当に大した話じゃない…

# しかし、空行を削除してもいい気はするし、しなくてもいい気もするなぁ。単にuniq通すだけだからまぁ、どっちでもいいんだけど。

· 2021/08/05 03:47 · 2021/08/05 03:47

FreeBSDのMulti-Fibとpacket送出について(駄文)

FreeBSDのMulti-FIBとIPパケット送出について、なんとなく色々考えていたら、少し問題がありそうなことに気がついたので考えてみた。 なお、実際のcodeは見ていないので、もしかすると大勘違いをしている可能性があります。

そこそこ長いかもしれないので、興味のない人はスルーでお願いします。

→ 続き...

· 2021/08/03 02:21 · 2021/08/03 02:21

FreeBSD EtherIP でトラブル(未解決)

FreeBSD 12-RELEASE を利用して以下の環境を構築したところうまくいかなかった。

以下は、症状を再現するための必要設定のみ記載している。

試験環境: FreeBSD rt12 12.2-RELEASE-p6 FreeBSD 12.2-RELEASE-p6 GENERIC amd64 基盤:VMware 5.5 及び、XCP-ng 8.2.0

Bridge0 -- gif0 -- em0 -- (network) -- em0 -- gif0 -- Bridge0
Node A   FreeBSD 12 ->|               |<- FreeBSD 12   Node B

なお、試験環境は、VMware上で構築している。また、自明だと思うが、kernel側でv4 forwarding/v6 forwardingを1にして、Routerモードにしてある

  • NodeAで設定したのは以下の通り
    • ifconfig em0 10.0.0.1/24
      ifconfig gif0 create
      ifconfig gif0 mtu 1500					# 記述ミス。追記
      ifconfig gif0 tunnel inet 10.0.0.1 10.0.0.2
      ifconfig gif0 inet 172.16.0.1/24 alias
      route add -net 172.16.1.0/24 -iface gif0
      ifconfig bridge0 create
      ifconfig bridge0 mtu 1500				# 記述ミス。追記
      ifconfig bridge0 addm gif0 -stp gif0
  • NodeBで設定したのは以下の通り
    • ifconfig em0 10.0.0.2/24
      ifconfig gif0 create
      ifconfig gif0 mtu 1500					# 記述ミス。追記
      ifconfig gif0 tunnel inet 10.0.0.2 10.0.0.1
      ifconfig gif0 inet 172.16.1.1/24 alias
      route add -net 172.16.0.0/24 -iface gif0
      ifconfig bridge0 create
      ifconfig bridge0 mtu 1500				# 記述ミス。追記
      ifconfig bridge0 addm gif0 -stp gif0

以上のように設定したところ、通信ができなかった。(NodeAでping 172.16.1.1を実行した)

tcpdumpでgif0の通信内容を見る(tcpdump -ni gif0) と、AF Unknown (18), length 46:が表示される。また、この時にtcpdump -ni em0を見ると、IP 10.0.0.1 > 10.0.0.2: ip-proto-97 86 のように、Packetは出て行っており、IPのProtocol番号97で通信しているようだが、pingは届かない。(parameter errorが出る)

この問題は、IP AddressをIPv4からIPv6に置き換えても変わらなかった

追記(記載忘れ。20210530)

  • いくつかのWeb Pageに、sysctlでkernelパラメータをいじるという記事があるので、実行したが変化なし
    • sysctl net.link.bridge.ipfw=0
      sysctl net.link.bridge.pfil_bridge=0
      sysctl net.link.bridge.pfil_member=0
  • bridge0 に物理I/Fを追加してみたが、これも効果なし
    • ifconfig bridge0 addm em1 -stf em1

問題を切り分けようと、bridge I/Fを削除すると、問題なくICMPが届くところを見ると、gifでの通信は正常にできていると考えられる。

とすると、FreeBSDのbridge deviceがEtherIP関連でものすごく変なことをしているとしか考えられない… と思って、ifconfig bridge0 deletem gif0 をNodeA/NodeBの両方で実行すると、問題なく通信できるようになる。

よく見る(症状1)と、

  1. bridge0にgif0が所属していない時は、gif経由でいわゆるIPv4/IPv6パケットが流れた
  2. bridge0にgif0が所属している時(addmした時)は、protocol number 97(EtherIP/on em0)/(parameter error/on gif0)の通信のように見える (tcpdumpのBinaryを解析する根性はなかった)。

追記(20210530)

以前、佐藤先生から、中を解析するには、Protocol number=97を追いかけるしかない、というお話をいただいている。

問題は、同一のFreeBSD同士でのgif+bridgeを用いたEtherIP通信が、IPv4でもIPv6でも失敗するところ。なお、NECのIX2000シリーズのEtherIPと繋ごうとしてもつなげないので、流石にFreeBSD側のBUGと考えるしかないが、問題はそのBUGが bridge(if_bridge.c) にあるのか gif(if_gif.c)にあるのかわからない…

なお、いくつか試験するにあたって、

  1. gifのみにIP Address(172.16.0.1/172.16.1.1)を割り当てた場合
  2. bridgeのみにIP Address(172.16.0.1/172.16.0.2)を割り当てた場合 (BridgeはBridgeをDirectに繋いでいるので、同一Segmentである必要がある)
  3. lo9を作成してそこのみにIP Address(172.16.0.1/172.16.1.1)を割り当てた場合

の3パターンを試験したが、全て、上記の症状1が観測された。

FreeBSD 9系列では動いているという報告はあるのだが、それもどこまで信用すれば…(いまさらFreeBSD 9-RELEASEを作る気にならなかった) そして、FreeBSD 13で動くかわからないしなぁ。

なんで俺はこんなに罠にハマるんだろう… しかも、なんで6時間もDebugにはまったんだろう… さて、どうすれば解決できることやら…

· 2021/05/30 03:52 · 2021/06/24 10:16
このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
tweet.txt · 最終更新: 2018/08/14 15:01 by seirios

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki