From nobody Wed Nov 12 19:10:54 2025 X-Original-To: virtualization@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4d6Cfk6W7Nz6GSg5 for ; Wed, 12 Nov 2025 19:10:54 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d6Cfk51Cjz3nrw for ; Wed, 12 Nov 2025 19:10:54 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762974654; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GbqwIfuwxdTqtrJbbkycBL8kU7UmI6mfbnAgFsvVXI0=; b=oy751VOJbkTi67BvndCnDc+KXbAg4feLqvLDgYuFnOwnF9GRfecuwNpWKhlH/RHt8h/0QU +oGQjcH0003J0qPyKrFebP9ocnb9ZTerWLCRz4o52KRxF0scZCCdZgMs3xGD8T3At0fXcU JJfRDl+As+LT3235SpYiOWxxTUkBEwM5aKG2sfYcU8mrYqc7TjdGkXClBh+9NgU70hBHhU PLFKWekpjR7qa1xs3sxI/PWpvb4H+qb5hFrY1S8/4vETAa5A9tw9I1Q4w0RuhzCMDPeU2E RkyX8xEzey0qvHo70jpdJsAcwUBwzbucoAK1LjTnke3IrLmmh88kR2o9+u6ovA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762974654; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GbqwIfuwxdTqtrJbbkycBL8kU7UmI6mfbnAgFsvVXI0=; b=rb19D883ek/EMWRux4KgJ/6+etomhf4cU9jQdp0MjxYQwFVqBnag+X1uOFGiW4RJtQYl/2 dYl628gd2Frf/kbmuVgrEYxXnriQfXDLgGdQAm8rUXKj58AP/bNBl9vcc0PKEyavNarGFz uVqmIdAd93wCYsfoTM0U2GSzsaUCIFy/iN/4g4FGbogWwoY1VTLMFiVzQ79E7hc6u/G6XM zLzmWncpyglYeaFUEKnnlLHVhsWH6saKrH4e45k5ZzXpkm5XQXN/mLgZp1Pwww1zi86Ttc TDHHgb10N7GwD2q/ukyly5GKlvJfRy+aP8ZVS58NGuRK7kmdGI+s5pVRj0IKYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1762974654; a=rsa-sha256; cv=none; b=YBKOlI57W7QGIVioZyvPjhPzCu2oSSQpFCc2MX1BIUI2gSdUuy2fbpDhaoPyEVcEdpe5Ed kqpwvJ0nu0CkiaERGowrLFEzEVYSEXyIkxH4neQ5cMaz3Di/MDfWRembaJxlWYn54mXp7/ WbCXNjafQQcSPJeTIT+AHdkVsScNk9Va5fehQlmIEGvfMccXyU1VFOs7eKRiEiP5b9G9zj 2TtWwRgK4CtMvtRjSYYDs4fgZnYS9o/Xlak/hlUn35wnoh54To5E7mkctQFUUrkdqtalOr r2fiy0Vay6niOPJjskDh2oJde5mkfCP62AWD39sa3tPaABoXAwqBy29b4fPULA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4d6Cfk4bCdzn8j for ; Wed, 12 Nov 2025 19:10:54 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 5ACJAs8w004793 for ; Wed, 12 Nov 2025 19:10:54 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 5ACJAssE004792 for virtualization@FreeBSD.org; Wed, 12 Nov 2025 19:10:54 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: virtualization@FreeBSD.org Subject: [Bug 290735] bhyve resume hangs Date: Wed, 12 Nov 2025 19:10:54 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bhyve X-Bugzilla-Version: 16.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: novel@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: virtualization@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated List-Id: Discussion List-Archive: https://lists.freebsd.org/archives/freebsd-virtualization List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: freebsd-virtualization@freebsd.org Sender: owner-freebsd-virtualization@FreeBSD.org MIME-Version: 1.0 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D290735 --- Comment #1 from Roman Bogorodskiy --- A bit info from attaching gdb to the stuck bhyve process: (gdb) info threads=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 Id Target Id Frame=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 1 LWP 100945 of process 57077 "mevent" _kevent () at _kevent.S:4=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 2 LWP 514902 of process 57077 "blk-2:0-0" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 3 LWP 514903 of process 57077 "blk-2:0-1" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 4 LWP 514904 of process 57077 "blk-2:0-2" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 5 LWP 514905 of process 57077 "blk-2:0-3" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 6 LWP 514906 of process 57077 "blk-2:0-4" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 7 LWP 514907 of process 57077 "blk-2:0-5" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 8 LWP 514908 of process 57077 "blk-2:0-6" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 9 LWP 514909 of process 57077 "blk-2:0-7" _umtx_op_err () at /usr/src/lib/libsys/amd64/_umtx_op_err.S:38=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 10 LWP 514910 of process 57077 "rfb" _read () at _read.S:= 4=20=20=20=20 * 11 LWP 514911 of process 57077 "vcpu 0" vm_loop (ctx=3D0x22061e821000, vcpu=3D0x22061e80d1f0) at /usr/src/usr.sbin/bhyve/bhyverun.c:641=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 12 LWP 514912 of process 57077 "vcpu 1" ioctl () at ioctl.S:= 4=20=20=20=20 13 LWP 514929 of process 57077 "checkpoint thread" _accept () at _accept.S:4=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 14 LWP 526525 of process 57077 "rfbout" fast_crc32 (crcval=3D3104297178, buf=3D, len=3D) at /usr/src/usr.sbin/bhyve/rfb.c:444=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20 (gdb) list=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 636 vmrun.cpuset =3D &dmask;=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20 637 vmrun.cpusetsize =3D sizeof(dmask);=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 638=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20 639 while (1) {=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20 640 error =3D vm_run(vcpu, &vmrun);=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 641 if (error !=3D 0)=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 642 break;=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 643=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20 644 exitcode =3D vme.exitcode;=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 645 if (exitcode >=3D VM_EXITCODE_MAX ||=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 (gdb) p vme=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 $6 =3D {exitcode =3D VM_EXITCODE_PAUSE, inst_length =3D 2, rip =3D 18446744072317830082, u =3D {inout =3D {bytes =3D 0, in =3D 0, string =3D 1= , rep =3D 1, port =3D 65232, eax =3D 40}, inout_str =3D {inout =3D {bytes =3D 0, in =3D = 0, string =3D 1, rep =3D 1, port =3D 65232, eax =3D 40}, paging =3D {=20=20=20=20=20=20=20 cr3 =3D 0, cpl =3D 0, cpu_mode =3D CPU_MODE_REAL, paging_mode =3D PAGING_MODE_FLAT}, rflags =3D 4357496832, cr0 =3D 12884901888, index =3D 3,= count =3D 14359727411886588043, addrsize =3D 1082130631, seg_name =3D 256215471, seg_= desc =3D {base =3D 1125900041078790, limit =3D 0,=20=20=20=20=20=20 access =3D 0}, cs_d =3D 49, cs_base =3D 240}, paging =3D {gpa =3D 1= 76073736432, fault_type =3D 0}, inst_emul =3D {gpa =3D 176073736432, gla =3D 0, cs_base = =3D 0, cs_d =3D 0, paging =3D {cr3 =3D 4357496832, cpl =3D 0, cpu_mode =3D CPU_MODE_64BIT, = paging_mode =3D PAGING_MODE_64}, vie =3D {=20=20 inst =3D "\213\200\360\000\000\000H\307\307\000\200@\257\211E", num= _valid =3D 15 '\017', num_processed =3D 6 '\006', addrsize =3D 8 '\b', opsize =3D = 4 '\004', rex_w =3D 0 '\000', rex_r =3D 0 '\000', rex_x =3D 0 '\000', rex_b =3D 0 '\0= 00', rex_present =3D 0 '\000',=20=20=20=20=20=20=20=20=20=20=20=20 repz_present =3D 0 '\000', repnz_present =3D 0 '\000', opsize_overr= ide =3D 0 '\000', addrsize_override =3D 0 '\000', segment_override =3D 0 '\000', mod = =3D 2 '\002', reg =3D 0 '\000', rm =3D 0 '\000', ss =3D 0 '\000', vex_present =3D= 0 '\000', vex_l =3D 0 '\000',=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 index =3D 0 '\000', base =3D 0 '\000', disp_bytes =3D 4 '\004', imm= _bytes =3D 0 '\000', scale =3D 0 '\000', vex_reg =3D 0 '\000', vex_pp =3D 0 '\000', _spa= rebits =3D 0 '\000', _sparebytes =3D "\000", base_register =3D 0, index_register =3D 49, segment_register =3D 49,=20=20=20=20=20=20=20=20=20=20=20=20 displacement =3D 240, immediate =3D 0, decoded =3D 1 '\001', _spare= byte =3D 0 '\000', op =3D {op_byte =3D 139 '\213', op_type =3D 1 '\001', op_flags =3D = 0}}}, vmx =3D {status =3D -19922704, exit_reason =3D 40, exit_qualification =3D 0, inst_t= ype =3D 0, inst_error =3D 0}, svm =3D {=20=20=20=20=20 exitcode =3D 176073736432, exitinfo1 =3D 0, exitinfo2 =3D 0}, bpt =3D {inst_length =3D -19922704}, dbg =3D {trace_trap =3D -19922704, pushf_inter= cept =3D 40, tf_shadow_val =3D 0, paging =3D {cr3 =3D 0, cpl =3D 0, cpu_mode =3D CPU_MOD= E_REAL, paging_mode =3D 62529536}}, msr =3D {=20=20=20=20=20=20=20=20=20=20 code =3D 4275044592, wval =3D 0}, spinup_ap =3D {vcpu =3D -19922704, = rip =3D 0}, hlt =3D {rflags =3D 176073736432, intr_status =3D 0}, ioapic_eoi =3D {vecto= r =3D -19922704}, suspended =3D {how =3D 4275044592}, ipi =3D {mode =3D 427504459= 2, vector =3D 40 '('}, task_switch =3D {=20=20=20=20=20=20=20=20=20=20=20=20=20 tsssel =3D 240, ext =3D 40, errcode =3D 0, errcode_valid =3D 0, reaso= n =3D TSR_CALL, paging =3D {cr3 =3D 0, cpl =3D 62529536, cpu_mode =3D CPU_MODE_PR= OTECTED, paging_mode =3D PAGING_MODE_FLAT}}}}=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20 (gdb) n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 644 exitcode =3D vme.exitcode;=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 (gdb) n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 645 if (exitcode >=3D VM_EXITCODE_MAX ||=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 (gdb) n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 646 vmexit_handlers[exitcode] =3D=3D NULL) {=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20 (gdb) n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 645 if (exitcode >=3D VM_EXITCODE_MAX ||=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 (gdb) n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 651 rc =3D (*vmexit_handlers[exitcode])(ctx, vcpu, &vmr= un);=20=20=20 (gdb) n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 653 switch (rc) {=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20 (gdb) p rc=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 $7 =3D 0=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 (gdb)=20=20 Apparently the userland part of bhyve cycling is looping within the VM_EXITCODE_PAUSE state. --=20 You are receiving this mail because: You are the assignee for the bug.=