mapbox / mapbox/XcodeClangFormat

Memory leak with custom style

Đang mở
#47 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Objective-C++
Star
807
Fork
102
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

  • Setup the Xcode project for XcodeClangFormat for debugging.
  • Build the app and set the style to https://github.com/blender/blender/blob/master/.clang-format
  • Run Extension this time and Xcode launches. Wait for the debugger to attach to the extension.
  • New Xcode command line tool project of C++ language.
  • In the C++ file, select all, paste the code given in the summary. [1] it's total 18 lines.
  • Editor > clang format > format entire file. It will format it correctly.
  • Select all again, paste the code still in your clipboard.
  • Editor > clang format > format entire file. It will fail & the original Xcode instance shows memory increase that settles around 500 MB. The trace appears in the console [2] & UI looks like this [3].
[1] Code to copy
//
//  main.cpp
//  clang-format-test
//
//  Copyright © 2020 ak. All rights reserved.
//

#include <iostream>
#include "main.hh"

int main(int argc, const char *argv[])
{
  // Long comment that must be broken down in multiple lines.
  // insert code here... insert code here... insert code here... insert code here... insert code here... insert code here...
  std::cout << "Hello, World!\n";
  return 0;
}

[2] Trace in console
2020-08-03 00:39:49.395275+0530 clang-format[6941:258937] [User Defaults] Couldn't read values in CFPrefsPlistSource<0x60b000012c00> (Domain: XcodeClangFormat, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd
2020-08-03 00:40:00.626852+0530 clang-format[6941:258937] [general] <NSXPCConnection: 0x60d000017bb0> connection from pid 6924: Warning: Exception caught during invocation of received message, dropping incoming message and invalidating the connection.
Exception: *** -[__NSArrayM objectAtIndex:]: index 18 beyond bounds [0 .. 17]
*** -[__NSArrayM objectAtIndex:]: index 18 beyond bounds [0 .. 17]
(
	0   CoreFoundation                      0x00007fff46876a7d __exceptionPreprocess + 256
	1   libobjc.A.dylib                     0x00007fff70f4ba17 objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff468b5a74 -[CFPrefsConfigurationFileSource initWithConfigurationPropertyList:containingPreferences:] + 0
	3   CoreFoundation                      0x00007fff467b21de -[CFPrefsSearchListSource addNamedVolatileSourceForIdentifier:] + 0
	4   clang-format                        0x0000000105a5ce7b -[ClangFormatCommand performCommandWithInvocation:completionHandler:] + 9099
	5   XcodeKit                            0x000000010ae192f4 -[_XCSourceEditorService performCommandInvocation:commandIdentifier:request:reply:] + 494
	6   Foundation                          0x00007fff48a8da0b __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT_S4__ + 12
	7   Foundation                          0x00007fff48a3298f -[NSXPCConnection _decodeAndInvokeMessageWithEvent:flags:] + 2499
	8   Foundation                          0x00007fff48a31d63 message_handler + 215
	9   libxpc.dylib                        0x00007fff7294df08 _xpc_connection_call_event_handler + 56
	10  libxpc.dylib                        0x00007fff7294be9e _xpc_connection_mach_event + 933
	11  libdispatch.dylib                   0x00007fff726cc6dd _dispatch_client_callout4 + 9
	12  libdispatch.dylib                   0x00007fff726e10d6 _dispatch_mach_msg_invoke + 436
	13  libdispatch.dylib                   0x00007fff726d2792 _dispatch_lane_serial_drain + 268
	14  libdispatch.dylib                   0x00007fff726e1c19 _dispatch_mach_invoke + 481
	15  libdispatch.dylib                   0x00007fff726d2792 _dispatch_lane_serial_drain + 268
	16  libdispatch.dylib                   0x00007fff726d33c6 _dispatch_lane_invoke + 433
	17  libdispatch.dylib                   0x00007fff726db6ed _dispatch_workloop_worker_thread + 598
	18  libsystem_pthread.dylib             0x00007fff7290c611 _pthread_wqthread + 421
	19  libsystem_pthread.dylib             0x00007fff7290c3fd start_wqthread + 13
)
[3] UI looks like

Screenshot 2020-08-03

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Tái hiện lỗi trong dự án XcodeClangFormat bằng style .clang-format của Blender và ví dụ C++ gồm 18 dòng, sau đó kiểm tra đường dẫn Extension và entry point ClangFormatCommand được nêu trong trace. Được xem là hoàn tất khi việc format file lần thứ hai không còn thất bại, Extension không tích lũy khoảng 500 MB và kết nối XPC vẫn có thể sử dụng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp, objective-c
Lĩnh vực
devtools
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.