Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 915747

Summary: Discovery command sometimes fails, corrupting the config. DB
Product: Red Hat Enterprise Linux 6 Reporter: Lev Veyde <lveyde>
Component: iscsi-initiator-utilsAssignee: Chris Leech <cleech>
Status: CLOSED WORKSFORME QA Contact: Storage QE <storage-qe>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.4CC: acanan, agrover, amureini, bdonahue, coughlan, cpelland, eedri, gklein, lveyde, nsoffer, obasan
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
RHEL 6.4
Last Closed: 2014-03-20 13:31:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 871829, 1002699    

Description Lev Veyde 2013-02-26 12:40:44 UTC
Description of problem:
After running the discovery command the iSCSI configuration becomes corrupted.
It's no longer possible to re-discover the targets, nor to connect.
Investigation shows that iSCSI config. file for one of the targets is sometimes created with a 0 size, probably due to some exception that happens during that phase.

Version-Release number of selected component (if applicable):
iscsi-initiator-utils-6.2.0.873-2.el6.x86_64

How reproducible:
sometimes

Steps to Reproduce:
1. iscsiadm -m discovery -t st -p <Storage IP>
2. command doesn't returns targets
3. iscsiadm -m node shows []:3260,-1 as one of the entry in the list
  
Actual results:
Discovery fails

Expected results:
Discovery should succeed

Additional info:
The fix is to delete the broken entry under /var/lib/iscsi/nodes/, specifically the empty file created as a fault.

Comment 2 RHEL Program Management 2013-03-02 06:48:10 UTC
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.

Comment 3 Ohad Basan 2013-08-11 11:52:12 UTC
I am still hitting on it
this is a testblocker for RHEV

Comment 4 Eyal Edri 2013-08-12 13:13:10 UTC
rhev 3.3.0 GA is targeted for Dec 3, 2013.
can this bug be pushed so it will make the release?

Comment 11 Gil Klein 2014-02-25 09:38:20 UTC
Aharon, Please try to reproduce this bug while debug flag for iscsiadm is enabled.

Please see instruction how to enabled debugging on BZ 1011075 comment 7
   
https://bugzilla.redhat.com/show_bug.cgi?id=1011075#c7

Comment 12 Leonid Natapov 2014-02-25 10:44:03 UTC
I tried to reproduce it on RHEL 6.5 and it seems that iscsi target always discovered correctly. I also run the iscsiadm command with debug. There are also no zero sized files in ISCSI DB directory.

[root@green-vdsa sbin]# iscsiadm -m discovery -t st -p 10.35.162.4 -d 5
iscsiadm: Max file limits 1024 4096

iscsiadm: starting sendtargets discovery, address 10.35.162.4:3260, 
iscsiadm: Matched transport be2iscsi

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/be2iscsi'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/be2iscsi/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/be2iscsi/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/be2iscsi/handle' with attribute value '18446744072105795200'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/be2iscsi'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/be2iscsi/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/be2iscsi/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/be2iscsi/caps' with attribute value '0x8b9'

iscsiadm: Matched transport bnx2i

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/bnx2i'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/bnx2i/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/bnx2i/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/bnx2i/handle' with attribute value '18446744072105644160'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/bnx2i'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/bnx2i/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/bnx2i/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/bnx2i/caps' with attribute value '0x8b9'

iscsiadm: Matched transport cxgb3i

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb3i'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb3i/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb3i/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb3i/handle' with attribute value '18446744072105277888'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb3i'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb3i/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb3i/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb3i/caps' with attribute value '0x30b9'

iscsiadm: Matched transport cxgb4i

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb4i'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb4i/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb4i/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb4i/handle' with attribute value '18446744072105470272'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb4i'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb4i/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb4i/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb4i/caps' with attribute value '0x30b9'

iscsiadm: Matched transport iser

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/iser/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/iser/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/iser/handle' with attribute value '18446744072104928768'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/iser/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/iser/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/iser/caps' with attribute value '0x9'

iscsiadm: Matched transport tcp

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/tcp'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/tcp/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/tcp/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/tcp/handle' with attribute value '18446744072104479584'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/tcp'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/tcp/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/tcp/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/tcp/caps' with attribute value '0x39'

iscsiadm: sendtargets discovery to 10.35.162.4:3260 using isid 0x00023d000000
iscsiadm: resolved 10.35.162.4 to 10.35.162.4
iscsiadm: discovery timeouts: login 15, reopen_cnt 6, auth 45.
iscsiadm: connecting to 10.35.162.4:3260
iscsiadm: connected local port 53046 to 10.35.162.4:3260
iscsiadm: connected to discovery address 10.35.162.4
iscsiadm: discovery session to 10.35.162.4:3260 starting iSCSI login
iscsiadm: sending login PDU with current stage 1, next stage 3, transit 0x80, isid 0x00023d000000 exp_statsn 0
iscsiadm: >    InitiatorName=iqn.1994-05.com.redhat:dcbfeec35af
iscsiadm: >    InitiatorAlias=green-vdsa.qa.lab.tlv.redhat.com
iscsiadm: >    SessionType=Discovery
iscsiadm: >    HeaderDigest=None
iscsiadm: >    DataDigest=None
iscsiadm: >    DefaultTime2Wait=2
iscsiadm: >    DefaultTime2Retain=0
iscsiadm: >    IFMarker=No
iscsiadm: >    OFMarker=No
iscsiadm: >    ErrorRecoveryLevel=0
iscsiadm: >    MaxRecvDataSegmentLength=32768
iscsiadm: wrote 48 bytes of PDU header
iscsiadm: wrote 272 bytes of PDU data
iscsiadm: read 48 bytes of PDU header
iscsiadm: read 48 PDU header bytes, opcode 0x23, dlength 175, data 0xd3df00, max 32768
iscsiadm: read 175 bytes of PDU data
iscsiadm: read 1 pad bytes
iscsiadm: finished reading login PDU, 48 hdr, 0 ah, 175 data, 1 pad
iscsiadm: login current stage 1, next stage 3, transit 0x80
iscsiadm: >    TargetPortalGroupTag=1
iscsiadm: >    HeaderDigest=None
iscsiadm: >    DataDigest=None
iscsiadm: >    DefaultTime2Wait=0
iscsiadm: >    DefaultTime2Retain=0
iscsiadm: >    IFMarker=No
iscsiadm: >    OFMarker=No
iscsiadm: >    ErrorRecoveryLevel=0
iscsiadm: >    MaxRecvDataSegmentLength=1048576
iscsiadm: login response status 0000
iscsiadm: discovery login success to 10.35.162.4
iscsiadm: sending text pdu with CmdSN 1, exp_statsn 1
iscsiadm: >    SendTargets=All
iscsiadm: wrote 48 bytes of PDU header
iscsiadm: wrote 16 bytes of PDU data
iscsiadm: discovery process  10.35.162.4:3260 polling fd 3, timeout in 30.000000 seconds
iscsiadm: read 48 bytes of PDU header
iscsiadm: read 48 PDU header bytes, opcode 0x24, dlength 81, data 0xd3df00, max 32768
iscsiadm: read 81 bytes of PDU data
iscsiadm: read 3 pad bytes
iscsiadm: finished reading text PDU, 48 hdr, 0 ah, 81 data, 3 pad
iscsiadm: >    TargetName=iqn.2008-05.com.xtremio:001e675ba170
iscsiadm: >    TargetAddress=10.35.162.4:3260,1
iscsiadm: discovery session to 10.35.162.4:3260 received text response, 81 data bytes, ttt 0xffffffff, final 0x80
iscsiadm: discovery process to 10.35.162.4:3260 exiting
iscsiadm: disconnecting conn 0xd350e0, fd 3
10.35.162.4:3260,1 iqn.2008-05.com.xtremio:001e675ba170
[root@green-vdsa sbin]# 
[root@green-vdsa sbin]# iscsiadm -m discovery -t st -p 10.35.162.4 
10.35.162.4:3260,1 iqn.2008-05.com.xtremio:001e675ba170
[root@green-vdsa sbin]# iscsiadm -m discovery -t st -p 10.35.162.4 -d 5
iscsiadm: Max file limits 1024 4096

iscsiadm: starting sendtargets discovery, address 10.35.162.4:3260, 
iscsiadm: Matched transport be2iscsi

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/be2iscsi'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/be2iscsi/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/be2iscsi/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/be2iscsi/handle' with attribute value '18446744072105795200'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/be2iscsi'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/be2iscsi/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/be2iscsi/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/be2iscsi/caps' with attribute value '0x8b9'

iscsiadm: Matched transport bnx2i

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/bnx2i'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/bnx2i/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/bnx2i/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/bnx2i/handle' with attribute value '18446744072105644160'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/bnx2i'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/bnx2i/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/bnx2i/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/bnx2i/caps' with attribute value '0x8b9'

iscsiadm: Matched transport cxgb3i

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb3i'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb3i/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb3i/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb3i/handle' with attribute value '18446744072105277888'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb3i'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb3i/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb3i/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb3i/caps' with attribute value '0x30b9'

iscsiadm: Matched transport cxgb4i

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb4i'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb4i/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb4i/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb4i/handle' with attribute value '18446744072105470272'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/cxgb4i'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/cxgb4i/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/cxgb4i/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/cxgb4i/caps' with attribute value '0x30b9'

iscsiadm: Matched transport iser

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/iser/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/iser/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/iser/handle' with attribute value '18446744072104928768'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/iser/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/iser/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/iser/caps' with attribute value '0x9'

iscsiadm: Matched transport tcp

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/tcp'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/tcp/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/tcp/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/tcp/handle' with attribute value '18446744072104479584'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/tcp'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/tcp/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/tcp/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/tcp/caps' with attribute value '0x39'

iscsiadm: sendtargets discovery to 10.35.162.4:3260 using isid 0x00023d000000
iscsiadm: resolved 10.35.162.4 to 10.35.162.4
iscsiadm: discovery timeouts: login 15, reopen_cnt 6, auth 45.
iscsiadm: connecting to 10.35.162.4:3260
iscsiadm: connected local port 53048 to 10.35.162.4:3260
iscsiadm: connected to discovery address 10.35.162.4
iscsiadm: discovery session to 10.35.162.4:3260 starting iSCSI login
iscsiadm: sending login PDU with current stage 1, next stage 3, transit 0x80, isid 0x00023d000000 exp_statsn 0
iscsiadm: >    InitiatorName=iqn.1994-05.com.redhat:dcbfeec35af
iscsiadm: >    InitiatorAlias=green-vdsa.qa.lab.tlv.redhat.com
iscsiadm: >    SessionType=Discovery
iscsiadm: >    HeaderDigest=None
iscsiadm: >    DataDigest=None
iscsiadm: >    DefaultTime2Wait=2
iscsiadm: >    DefaultTime2Retain=0
iscsiadm: >    IFMarker=No
iscsiadm: >    OFMarker=No
iscsiadm: >    ErrorRecoveryLevel=0
iscsiadm: >    MaxRecvDataSegmentLength=32768
iscsiadm: wrote 48 bytes of PDU header
iscsiadm: wrote 272 bytes of PDU data
iscsiadm: read 48 bytes of PDU header
iscsiadm: read 48 PDU header bytes, opcode 0x23, dlength 175, data 0x26d1f00, max 32768
iscsiadm: read 175 bytes of PDU data
iscsiadm: read 1 pad bytes
iscsiadm: finished reading login PDU, 48 hdr, 0 ah, 175 data, 1 pad
iscsiadm: login current stage 1, next stage 3, transit 0x80
iscsiadm: >    TargetPortalGroupTag=1
iscsiadm: >    HeaderDigest=None
iscsiadm: >    DataDigest=None
iscsiadm: >    DefaultTime2Wait=0
iscsiadm: >    DefaultTime2Retain=0
iscsiadm: >    IFMarker=No
iscsiadm: >    OFMarker=No
iscsiadm: >    ErrorRecoveryLevel=0
iscsiadm: >    MaxRecvDataSegmentLength=1048576
iscsiadm: login response status 0000
iscsiadm: discovery login success to 10.35.162.4
iscsiadm: sending text pdu with CmdSN 1, exp_statsn 1
iscsiadm: >    SendTargets=All
iscsiadm: wrote 48 bytes of PDU header
iscsiadm: wrote 16 bytes of PDU data
iscsiadm: discovery process  10.35.162.4:3260 polling fd 3, timeout in 30.000000 seconds
iscsiadm: read 48 bytes of PDU header
iscsiadm: read 48 PDU header bytes, opcode 0x24, dlength 81, data 0x26d1f00, max 32768
iscsiadm: read 81 bytes of PDU data
iscsiadm: read 3 pad bytes
iscsiadm: finished reading text PDU, 48 hdr, 0 ah, 81 data, 3 pad
iscsiadm: >    TargetName=iqn.2008-05.com.xtremio:001e675ba170
iscsiadm: >    TargetAddress=10.35.162.4:3260,1
iscsiadm: discovery session to 10.35.162.4:3260 received text response, 81 data bytes, ttt 0xffffffff, final 0x80
iscsiadm: discovery process to 10.35.162.4:3260 exiting
iscsiadm: disconnecting conn 0x26c90e0, fd 3
10.35.162.4:3260,1 iqn.2008-05.com.xtremio:001e675ba170

Comment 13 Tom Coughlan 2014-03-13 13:49:04 UTC
(In reply to Leonid Natapov from comment #12)
> I tried to reproduce it on RHEL 6.5 and it seems that iscsi target always
> discovered correctly. I also run the iscsiadm command with debug. There are
> also no zero sized files in ISCSI DB directory.

So we can close this?