Opened 14 years ago

Closed 12 years ago

#5753 closed bug (duplicate)

PANIC: vnode already exists

Reported by: andreasf Owned by: axeld
Priority: high Milestone: R1/alpha4
Component: File Systems/BFS Version: R1/Development
Keywords: Cc:
Blocked By: #5262 Blocking:
Platform: x86

Description

Got a KDL while opening a .cpp file via Open As > Pe:

PANIC: vnode 3:344608 already exists (node = 0xcce5b000, vnode->node = 0xccde394c)
Welcome to Kernel Debugging Land...
Thread 319 "Pe" running on CPU 1
kdebug> bt
stack trace for thread 319 "Pe"
    kernel stack: 0x812f1000 to 0x812f5000
      user stack: 0x7efef000 to 0x7ffef000
frame               caller     <image>:function + offset
 0 812f47d8 (+  32) 80075267   <kernel_x86> invoke_command_trampoline(void*: 0x812f4858) + 0x0017
 1 812f47f8 (+  12) 800f8bce   <kernel_x86>:arch_debug_call_with_fault_handler + 0x001b
 2 812f4804 (+  48) 80072b28   <kernel_x86>:debug_call_with_fault_handler + 0x0058
 3 812f4834 (+  64) 8007560c   <kernel_x86>:invoke_debugger_command + 0x008c
 4 812f4874 (+  48) 80075766   <kernel_x86> invoke_pipe_segment(debugger_command_pipe*: NULL, int32: 0, char*: 0x2f48d4) + 0x0086
 5 812f48a4 (+  32) 8007583c   <kernel_x86>:invoke_debugger_command_pipe + 0x008c
 6 812f48c4 (+  48) 800790cb   <kernel_x86> ExpressionParser<0x812f4950>::_ParseCommandPipe(int&: 0x812f49ec) + 0x017b
 7 812f48f4 (+  64) 8007c5bc   <kernel_x86> ExpressionParser<0x812f4950>::EvaluateCommand(char const*: 0x8014f5e0 "bt", int&: 0x812f49ec) + 0x07cc
 8 812f4934 (+ 192) 8007d3e4   <kernel_x86>:evaluate_debug_command + 0x0114
 9 812f49f4 (+  64) 80073bc4   <kernel_x86> kernel_debugger_loop(char const*: 0x1 "<???>", char const*: 0x801447ce "PANIC: ", char*: 0x812f4a64, int32: -2147008834
10 812f4a34 (+  48) 80073dd2   <kernel_x86> kernel_debugger_internal(char const*: 0x1 "<???>", char const*: 0x0 "<NULL>", char*: 0x812f4a84, int32: -2147008384) +2
11 812f4a64 (+  32) 80074093   <kernel_x86>:panic + 0x0023
12 812f4a84 (+  80) 800b47a3   <kernel_x86>:new_vnode + 0x00a3
13 812f4ad4 (+  64) 81503474   <bfs> InodeAllocator<0x812f4b70>::New(block_run*: 0x812f4ba8, uint32: 0x81a4 (33188), block_run&: 0x812f4b8c, fs_vnode_ops*: 0x81518
14 812f4b14 (+ 176) 81506f3e   <bfs> Inode<0x812f4c3c>::Create(Transaction&: 0xcce536a4, Inode*: 0x812f4e04, char const*: 0x81a4 "<???>", int32: 834, int32: 0, uie
15 812f4bc4 (+ 160) 815134d4   <bfs> bfs_create(fs_volume*: 0xccd16938, fs_vnode*: 0xcce52198, char const*: 0x812f4e04 "keywords.cpp", int32: 834, int32: 420, voi8
16 812f4c64 (+ 368) 800bda63   <kernel_x86> create_vnode(vnode*: 0x1a4, char const*: 0x0 "<NULL>", int32: 0, int32: 0, true) + 0x0073
17 812f4dd4 (+ 320) 800bdf1d   <kernel_x86> file_create(int32: 420, char*: NULL, int32: 42, int32: 42, true) + 0x004d
18 812f4f14 (+  48) 800bdfea   <kernel_x86>:_user_open + 0x00aa
19 812f4f44 (+ 100) 800f9db2   <kernel_x86>:handle_syscall + 0x00af
user iframe at 0x812f4fa8 (end = 0x812f5000)
 eax 0x64           ebx 0x5cb430        ecx 0x7ffeca3c   edx 0xffff0114
 esi 0x7ffecc9c     edi 0x242           ebp 0x7ffeca68   esp 0x812f4fdc
 eip 0xffff0114  eflags 0x202      user esp 0x7ffeca3c
 vector: 0x63, error code: 0x0
20 812f4fa8 (+   0) ffff0114   <commpage>:commpage_syscall + 0x0004
21 7ffeca68 (+  48) 00503dd2   <libbe.so> BFile::BFile(char const*: 0x7ffecc9c "H�\", uint32: 0x18032c08) + 0x0052
22 7ffeca98 (+ 864) 0027169d   <_APP_> CLanguageInterface<0x18093e88>::GenerateKeywordMap const(char const*: 0x7ffece54 "/boot/apps/Pe/Languages/CppExt") + 0x0aad
23 7ffecdf8 (+1152) 00271b4b   <_APP_> CLanguageInterface<0x18093e88>::LookupKeyword const(BString const&: 0x7ffed2a8, int32: 0) + 0x01fb
24 7ffed278 (+  64) 00271bef   <_APP_> CLanguageInterface<0x18093e88>::LookupCurrentKeyword const(int32: 9, int32: 0) + 0x003f
25 7ffed2b8 (+  32) 00274657   <_APP_> CLanguageProxy<0x7ffed388>::IsKeyword(int32: 9, int32: 0) + 0x0027
26 7ffed2d8 (+ 128) 00a914f9   <CppExt>:ColorLine + 0x0769
27 7ffed358 (+  96) 0026fb06   <_APP_> CLanguageInterface<0x18093e88>::ColorLine(char const*: 0x7ffed404 "#include <mono/jit/jit.h>
", int32: 26, int&: 0x7ffee408, int*: NULL, rgb_color*: NULL) + 0x0046
28 7ffed3b8 (+4192) 002b91f3   <_APP_> PText<0x18051878>::RestyleDirtyLines(int32: 0) + 0x0173
29 7ffee418 (+  64) 002bb463   <_APP_> PText<0x18051878>::RecalculateLineBreaks() + 0x0093
30 7ffee458 (+  32) 002bb4dc   <_APP_> PText<0x18051878>::SetText(char const*: 0x180365a8 "#include <mono/jit/jit.h>
#include <mono/metadata/assembly.h>
#include <mono/metadata/mono-config.h>
#include <Application.h>
#include <Window.h>

class MyWindow : public BWindow {
public:
        MyWindow(BRect frame);
        virtual bool QuitRequested();
};

int mai", uint32: 0x41b (1051)) + 0x004c
31 7ffee478 (+  32) 002a1345   <_APP_> PDoc<0x18029240>::SetText(BString const&: 0x7ffee6c4) + 0x0045
32 7ffee498 (+ 576) 00246743   <_APP_> CLocalDocIO<0x1801c0b0>::ReadDoc(true) + 0x0353
33 7ffee6d8 (+ 320) 002415d6   <_APP_> CDoc<0x180293b8>::Read(true) + 0x0036
34 7ffee818 (+ 144) 002a2a39   <_APP_> PDoc::PDoc(entry_ref const*: 0x18029240, true) + 0x00c9
35 7ffee8a8 (+  48) 0028ea5d   <_APP_> PApp<0x18025050>::NewWindow(entry_ref const*: 0x7ffeec38, true) + 0x003d
36 7ffee8d8 (+ 416) 0028ee17   <_APP_> PApp<0x18025050>::OpenWindow(entry_ref const&: 0x7ffeec38, true) + 0x0357
37 7ffeea78 (+ 496) 0028f3d4   <_APP_> PApp<0x18025050>::RefsReceived(BMessage*: 0x180bce58) + 0x01e4
38 7ffeec68 (+ 560) 0041ea42   <libbe.so> BApplication<0x18025050>::DispatchMessage(BMessage*: 0x180bce58, BHandler*: 0x18025050) + 0x02f2
39 7ffeee98 (+  64) 00290843   <_APP_> PApp<0x18025050>::DispatchMessage(BMessage*: 0x180bce58, BHandler*: 0x18025050) + 0x0033
40 7ffeeed8 (+  64) 0042a119   <libbe.so> BLooper<0x18025050>::task_looper() + 0x0299
41 7ffeef18 (+  32) 0041f013   <libbe.so> BApplication<0x18025050>::Run() + 0x0053
42 7ffeef38 (+  48) 0029261c   <_APP_>:main + 0x004c
43 7ffeef68 (+  52) 002394bd   <_APP_>:_start + 0x0051
44 7ffeef9c (+  64) 00105937   </boot/system/runtime_loader@0x00100000>:unknown + 0x5937
45 7ffeefdc (+   0) 7ffeefec   5172:Pe_main_stack@0x7efef000 + 0xffffec
kdebug> 

System is a real Athlon64 X2 at hrev36340.

Attachments (2)

IMG_20120616_201859.jpg (194.9 KB ) - added by kallisti5 12 years ago.
screenshot of kdl
Haiku_Ticket_5753_vfs.cpp.patch (889 bytes ) - added by haxworx 12 years ago.
A Patch to Try to Fix the PANIC behaviour of vfs.cpp

Download all attachments as: .zip

Change History (7)

comment:1 by kallisti5, 12 years ago

Same issue seen as of latest hrev44242 gcc4 hybrid

After a machine lockup, I rebooted. When I start doing large amounts of IO on the disk in question, I get the exact same crash above.

A checkfs results in no problems found.

comment:2 by kallisti5, 12 years ago

Component: - GeneralFile Systems/BFS
Milestone: R1R1/alpha4
Owner: changed from nobody to axeld
Priority: normalhigh

by kallisti5, 12 years ago

Attachment: IMG_20120616_201859.jpg added

screenshot of kdl

by haxworx, 12 years ago

A Patch to Try to Fix the PANIC behaviour of vfs.cpp

comment:3 by haxworx, 12 years ago

patch: 01

comment:4 by haxworx, 12 years ago

The default behaviour in kernel/fs/vfs.cpp was to panic. This patch has changed the behaviour. Also vnode was freed then used causing a SEGFAULT.

comment:5 by axeld, 12 years ago

Blocked By: 5262 added
Resolution: duplicate
Status: newclosed

Obviously a duplicate of #5262 indeed.

Note: See TracTickets for help on using tickets.