Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation fault: 11 #487

Closed
jverkoey opened this issue Jun 9, 2016 · 17 comments
Closed

Segmentation fault: 11 #487

jverkoey opened this issue Jun 9, 2016 · 17 comments

Comments

@jverkoey
Copy link

jverkoey commented Jun 9, 2016

I ran the following command: proselint --json file.md

Where file.md contains:

### a

a `code`

    somewords//
      IsAWordCamelCased/

### b
@joshmgrant
Copy link
Contributor

I can't seem to reproduce this. Which OS and python version are you using?

@jverkoey
Copy link
Author

jverkoey commented Jun 17, 2016

I'm on OS X 10.11.5. Python 2.7.10. Proselint 0.5.3.

@jverkoey
Copy link
Author

Upgraded to Python 2.7.11; crash still occurs.

@suchow
Copy link
Member

suchow commented Jun 17, 2016

I'm on OS X 10.11.6 Beta (15G7b), Python 3.5, and proselint 0.5.3, and this runs cleanly. Can you upload the file? Maybe it's something about the encoding?

@suchow
Copy link
Member

suchow commented Jun 17, 2016

It also runs cleanly for me on OS X 10.11.6 Beta (15G7b), Python 2.7.10, and proselint 0.5.3

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

Looking in to this again because I've been sad that I can't use proselint.

proselint --version works fine, so I started by assuming it was a check that was causing the problem.

I removed all of the checks and added them back in in batches until it segfaulted again.

Looks like weasel_words is the culprit. Going to dive in to the code now and report back.

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

Appears to specifically be the very.py script. If I remove it and its .pyc then everything seems to run ok.

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

I've just tried replacing the contents of very.py with one of the other checks and I still get the segfault. Odd.

I tried emptying the file. Segfault.

Removed the file. No segfault.

Renamed the file (with original contents) to very2.py. No segfault.

As best I can conclude from this, it appears something has a problem with the filename very.py.

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

Btw I've also tried all of the typical uninstall/reinstall/upgrade/burn candles in a circle/sent the ravens/did a cartwheel, all to no avail.

@suchow
Copy link
Member

suchow commented Jul 1, 2016

Can you try running proselint with the --clean flag? I wonder if there is some corruption in the cache.

@suchow
Copy link
Member

suchow commented Jul 1, 2016

Also, what kind of candles did you burn? Can you give a version number? That can be important.

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

It appears proselint no longer segfaults without very.py, but it also doesn't throw any sort of warnings at all now.

Just silence.

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

Sadly the candles have burned down and I can no longer ping them.

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

I fear now that the candles may have summoned something far worse than where I'd originally started.

@suchow
Copy link
Member

suchow commented Jul 1, 2016

So where do things stand right now? When you run proselint --clean and then proselint --json file.md, you get a segfault?

@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

I tried uninstalling proselint again and reinstalling, but this time went in and manually deleted all of the relevant binaries/scripts I could find before running install again. Magically, everything appears to be working again.

And so it goes.

@jverkoey jverkoey closed this as completed Jul 1, 2016
@jverkoey
Copy link
Author

jverkoey commented Jul 1, 2016

For historical purposes, these were the segfaults I was seeing:

Process:               Python [2787]
Path:                  /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Identifier:            Python
Version:               2.7.10 (2.7.10)
Code Type:             X86-64 (Native)
Parent Process:        bash [90309]
Responsible:           Terminal [2452]
User ID:               81760

Date/Time:             2016-07-01 00:36:13.424 -0400
OS Version:            Mac OS X 10.11.5 (15F34)
Report Version:        11

Time Awake Since Boot: 88000 seconds
Time Since Wake:       5900 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x00007fec35000000

VM Regions Near 0x7fec35000000:
    MALLOC_SMALL           00007fec33000000-00007fec35000000 [ 32.0M] rw-/rwx SM=PRV  
--> 
    STACK GUARD            00007fff54b5b000-00007fff5835b000 [ 56.0M] ---/rwx SM=NUL  stack guard for thread 0

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_platform.dylib        0x00007fff9585ff49 _platform_memmove$VARIANT$Haswell + 41
1   libsystem_c.dylib               0x00007fff9aadf1dc putpair + 92
2   libsystem_c.dylib               0x00007fff9aadf0f2 __split_page + 1360
3   libsystem_c.dylib               0x00007fff9aadd609 hash_access + 436
4   libsystem_c.dylib               0x00007fff9aae00be dbm_store + 47
5   dbm.so                          0x00000001079c0885 0x1079bf000 + 6277
6   org.python.python               0x000000010712c872 PyEval_EvalFrameEx + 4799
7   org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
8   org.python.python               0x00000001070d02e5 0x1070a8000 + 164581
9   org.python.python               0x00000001070b2202 PyObject_Call + 99
10  org.python.python               0x00000001070bcff5 0x1070a8000 + 86005
11  org.python.python               0x00000001070b2202 PyObject_Call + 99
12  org.python.python               0x0000000107130e83 PyEval_CallObjectWithKeywords + 165
13  org.python.python               0x00000001070befeb 0x1070a8000 + 94187
14  org.python.python               0x000000010712c872 PyEval_EvalFrameEx + 4799
15  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
16  org.python.python               0x00000001071314ae 0x1070a8000 + 562350
17  org.python.python               0x000000010712e30c PyEval_EvalFrameEx + 11609
18  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
19  org.python.python               0x00000001071314ae 0x1070a8000 + 562350
20  org.python.python               0x000000010712e30c PyEval_EvalFrameEx + 11609
21  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
22  org.python.python               0x00000001070d02e5 0x1070a8000 + 164581
23  org.python.python               0x00000001070b2202 PyObject_Call + 99
24  org.python.python               0x000000010712e4ac PyEval_EvalFrameEx + 12025
25  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
26  org.python.python               0x00000001070d02e5 0x1070a8000 + 164581
27  org.python.python               0x00000001070b2202 PyObject_Call + 99
28  org.python.python               0x000000010712e4ac PyEval_EvalFrameEx + 12025
29  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
30  org.python.python               0x00000001070d02e5 0x1070a8000 + 164581
31  org.python.python               0x00000001070b2202 PyObject_Call + 99
32  org.python.python               0x000000010712e4ac PyEval_EvalFrameEx + 12025
33  org.python.python               0x0000000107131541 0x1070a8000 + 562497
34  org.python.python               0x000000010712e30c PyEval_EvalFrameEx + 11609
35  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
36  org.python.python               0x00000001070d02e5 0x1070a8000 + 164581
37  org.python.python               0x00000001070b2202 PyObject_Call + 99
38  org.python.python               0x000000010712e4ac PyEval_EvalFrameEx + 12025
39  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
40  org.python.python               0x00000001070d02e5 0x1070a8000 + 164581
41  org.python.python               0x00000001070b2202 PyObject_Call + 99
42  org.python.python               0x00000001070bcff5 0x1070a8000 + 86005
43  org.python.python               0x00000001070b2202 PyObject_Call + 99
44  org.python.python               0x00000001070f8a33 0x1070a8000 + 330291
45  org.python.python               0x00000001070b2202 PyObject_Call + 99
46  org.python.python               0x000000010712de37 PyEval_EvalFrameEx + 10372
47  org.python.python               0x000000010712b3c1 PyEval_EvalCodeEx + 1583
48  org.python.python               0x000000010712ad8c PyEval_EvalCode + 54
49  org.python.python               0x000000010714aa42 0x1070a8000 + 666178
50  org.python.python               0x000000010714aae5 PyRun_FileExFlags + 133
51  org.python.python               0x000000010714a634 PyRun_SimpleFileExFlags + 698
52  org.python.python               0x000000010715c011 Py_Main + 3137
53  libdyld.dylib                   0x00007fff9c26d5ad start + 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants