[email protected]:/home/ramcharran/src# docker run -it dll_img /bin/bash
bash-4.3# python3 app.py
connection to cursor
registering tokenizer
virtual table created
inserted data into virtual table
Segmentation fault (core dumped)
bash-4.3#
ulimit -c unlimitedでコア制限を上げようとしましたが動作しませんでした。ドッカーのセグメンテーションフォルト(コアダンプ)、この状況で何をすべきか?
私はコードをローカルで正常に実行しましたが、ドッカーと一緒に私は分からないセグメント違反があるようです。
私は、動作しなかったベースデバイスのストレージを増やそうとしました。 私のドッカーマシンには何らかの理由でベースデバイスストレージがありません。
[email protected]:/home/ramcharran# docker info
Containers: 6
Running: 0
Paused: 0
Stopped: 6
Images: 19
Server Version: 1.12.3
**Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 27**
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-59-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 8.046 GiB
Name: ramcharran-VirtualBox
ID: WRT4:KUPK:BFBA:EJ5G:XWT2:7FXX:UX42:NALM:FNNJ:Z4XV:X44U:NFOT
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8
[email protected]:/home/ramcharran#
EDIT
次は私のソースコードです:OUTokenizerは問題がない
import json
import apsw
import sqlitefts as fts
import search
from search import OUWordTokenizer
from flask import Flask
app = Flask(__name__)
#tracker = SummaryTracker()
def tokenize():
connection = apsw.Connection('texts.db', flags=apsw.SQLITE_OPEN_READWRITE)
c = connection.cursor()
print("connection to cursor")
fts.register_tokenizer(c, 'oulatin', fts.make_tokenizer_module(OUWordTokenizer('latin')))
print("registering tokenizer")
c.execute("begin;")
c.execute("CREATE VIRTUAL TABLE IF NOT EXISTS text_idx USING fts3 (id, title, book, author, date, chapter, verse, passage, link, documentType, tokenize={});".format("oulatin"))
c.execute("commit;")
print("virtual table created")
c.execute("INSERT INTO text_idx (id, title, book, author, date, chapter, verse, passage, link, documentType) SELECT id, title, book, author, date, chapter, verse, passage, link, documentType FROM texts;")
print ("inserted data into virtual table")
@app.route('/')
def hello_world():
print ("Hello world")
search.word_tokenizer
print ("word_tokenizers")
return json.dumps({"name": "test"})
if __name__ == '__main__':
tokenize()
app.run(debug=True, host='0.0.0.0')
#tracker.print_diff()
、私はvalgrindのと、各後にプリントを使用して、GDBでそれをデバッグしていますそのすべてがエラーなく実行されました。 OUtokenizerが実行された後にデータがテーブルに挿入されると、セグメンテーションフォルトが発生します。
この問題を解決するのを手伝ってください。
Docker自体がsegfaultを生成していないため、アプリケーションはです。あなたのアプリケーションを見ることなく、私はこの質問に答えることは可能だとは思わない。 – BMitch
このコメントの一部としてコード全体を取得できませんでした。 http://stackoverflow.com/questions/41861941/how-to-understand-why-flask-is-restarting-what-is-the-exception-that-is-causeing あなたはとても親切に行きましょうか?リンク?お願いします。 –
実行しているコードはコメントであってはなりません。あなたの質問の編集でなければなりません。そのために上記のボタンがあります。 – BMitch