glpi-project / glpi

GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.
https://glpi-project.org
GNU General Public License v3.0
4.12k stars 1.28k forks source link

blocking the Status field at the computer by automatic action #14001

Closed rean1mat0r closed 1 year ago

rean1mat0r commented 1 year ago

Code of Conduct

Is there an existing issue for this?

Version

10.0.6

Bug description

Inventory is configured in my GLPI 1 time per day. In the Administration-inventory section, I have configured: the default status is "Communication with the agent has been successfully established" and in the AgentCleanup section, the "Acion" parameter is set to "Change the status", and the "Change the status" parameter is set to the option "The agent has not contacted within 1 day".

When CleanOldAgents performs an automatic action and changes the status of a computer that has not taken inventory for more than a day, then after that the "Status" field is blocked and can no longer be changed automatically, but only manually. Thus, it turns out that the newly turned on computer successfully communicates with the server, but its status does not change automatically.

Relevant log output

No response

Page URL

No response

Steps To reproduce

  1. Go to page Administration-Inventory
  2. Set some Default status
  3. Set parameter "Update agents who have not contacted the server for (in days)" to some value.
  4. Set parametr Action to "Change the status"
  5. Set some status on parametr "Change the status"
  6. Send inventory from target computer
  7. Wait for a longer time than specified in the parameter "Update agent that has not contacted the server for (in days)"
  8. Run Automatic action CleanOldAgents
  9. Check Status parametr in target computer asset page. Status must be changed and locked.
  10. Send new inventory from target computer.
  11. Check Status parametr in target computer asset page. Status must be locked and not changed to default

Your GLPI setup information

<details><summary>Information about system installation and configuration</summary><pre>GLPI 10.0.6 ( => /var/www/itsm.filial-fnkc)
Installation mode: TARBALL
Current language:en_GB

</details><details><summary>Server</summary><pre> 
Operating system: Linux Server-ITSM 5.15.0-58-generic #64-Ubuntu SMP Thu Jan 5 11:43:13 UTC 2023 x86_64
PHP 8.1.2-1ubuntu2.10 apache2handler (Core, FFI, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apache2handler, apcu, bz2,
    calendar, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, intl, json, ldap, libxml, mbstring,
    mysqli, mysqlnd, openssl, pcre, pdo_mysql, posix, readline, session, shmop, sockets, sodium, standard, sysvmsg, sysvsem,
    sysvshm, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib)
Setup: max_execution_time="600" memory_limit="128M" post_max_size="8M" safe_mode="" session.save_handler="files"
    upload_max_filesize="10M" 
Software: Apache/2.4.52 (Ubuntu) (Apache/2.4.52 (Ubuntu) Server at itsm.filial-fnkc Port 80
)
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0
Server Software: Ubuntu 22.04
    Server Version: 10.6.11-MariaDB-0ubuntu0.22.04.1
    Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Parameters: sqladmin@localhost/itsm_filial_fnkc_db
    Host info: Localhost via UNIX socket

PHP version (8.1.2-1ubuntu2.10) is supported.
Sessions configuration is OK.
Allocated memory is sufficient.
mysqli extension is installed.
Following extensions are installed: dom, fileinfo, json, simplexml.
curl extension is installed.
gd extension is installed.
intl extension is installed.
libxml extension is installed.
zlib extension is installed.
The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
Database engine version (10.6.11) is supported.
No files from previous GLPI version detected.
The log file has been created successfully.
Write access to /var/www/itsm.filial-fnkc/files/_cache has been validated.
Write access to /var/www/itsm.filial-fnkc/config has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_cron has been validated.
Write access to /var/www/itsm.filial-fnkc/files has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_dumps has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_graphs has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_lock has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_pictures has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_plugins has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_rss has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_sessions has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_tmp has been validated.
Write access to /var/www/itsm.filial-fnkc/files/_uploads has been validated.
The following directories should be placed outside "/var/www/itsm.filial-fnkc":
‣ "/var/www/itsm.filial-fnkc/files" ("GLPI_VAR_DIR")
‣ "/var/www/itsm.filial-fnkc/config" ("GLPI_CONFIG_DIR")
You can ignore this suggestion if you are certain that these directories are not accessible through your web server.
Sessions configuration is secured.
exif extension is installed.
ldap extension is installed.
openssl extension is installed.
zip extension is installed.
bz2 extension is installed.
Zend OPcache extension is installed.
Following extensions are installed: ctype, iconv, mbstring, sodium.
Write access to /var/www/itsm.filial-fnkc/marketplace has been validated.
Timezones seems loaded in database.

</details><details><summary>GLPI constants</summary><pre> 
GLPI_ROOT: "/var/www/itsm.filial-fnkc"
GLPI_CONFIG_DIR: "/var/www/itsm.filial-fnkc/config"
GLPI_VAR_DIR: "/var/www/itsm.filial-fnkc/files"
GLPI_MARKETPLACE_DIR: "/var/www/itsm.filial-fnkc/marketplace"
GLPI_USE_CSRF_CHECK: "1"
GLPI_CSRF_EXPIRES: "7200"
GLPI_CSRF_MAX_TOKENS: "100"
GLPI_USE_IDOR_CHECK: "1"
GLPI_IDOR_EXPIRES: "7200"
GLPI_ALLOW_IFRAME_IN_RICH_TEXT: false
GLPI_SERVERSIDE_URL_ALLOWLIST: ["/^(https?|feed):\\/\\/[^@:]+(\\/.*)?$/"]
GLPI_TELEMETRY_URI: "https://telemetry.glpi-project.org"
GLPI_INSTALL_MODE: "TARBALL"
GLPI_NETWORK_MAIL: "glpi@teclib.com"
GLPI_NETWORK_SERVICES: "https://services.glpi-network.com"
GLPI_MARKETPLACE_ALLOW_OVERRIDE: true
GLPI_MARKETPLACE_MANUAL_DOWNLOADS: true
GLPI_USER_AGENT_EXTRA_COMMENTS: ""
GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: "1"
GLPI_AJAX_DASHBOARD: "1"
GLPI_CALDAV_IMPORT_STATE: 0
GLPI_DEMO_MODE: "0"
GLPI_CENTRAL_WARNINGS: "1"
GLPI_DOC_DIR: "/var/www/itsm.filial-fnkc/files"
GLPI_CACHE_DIR: "/var/www/itsm.filial-fnkc/files/_cache"
GLPI_CRON_DIR: "/var/www/itsm.filial-fnkc/files/_cron"
GLPI_DUMP_DIR: "/var/www/itsm.filial-fnkc/files/_dumps"
GLPI_GRAPH_DIR: "/var/www/itsm.filial-fnkc/files/_graphs"
GLPI_LOCAL_I18N_DIR: "/var/www/itsm.filial-fnkc/files/_locales"
GLPI_LOCK_DIR: "/var/www/itsm.filial-fnkc/files/_lock"
GLPI_LOG_DIR: "/var/www/itsm.filial-fnkc/files/_log"
GLPI_PICTURE_DIR: "/var/www/itsm.filial-fnkc/files/_pictures"
GLPI_PLUGIN_DOC_DIR: "/var/www/itsm.filial-fnkc/files/_plugins"
GLPI_RSS_DIR: "/var/www/itsm.filial-fnkc/files/_rss"
GLPI_SESSION_DIR: "/var/www/itsm.filial-fnkc/files/_sessions"
GLPI_TMP_DIR: "/var/www/itsm.filial-fnkc/files/_tmp"
GLPI_UPLOAD_DIR: "/var/www/itsm.filial-fnkc/files/_uploads"
GLPI_INVENTORY_DIR: "/var/www/itsm.filial-fnkc/files/_inventories"
GLPI_NETWORK_REGISTRATION_API_URL: "https://services.glpi-network.com/api/registration/"
GLPI_MARKETPLACE_PLUGINS_API_URI: "https://services.glpi-network.com/api/glpi-plugins/"
GLPI_I18N_DIR: "/var/www/itsm.filial-fnkc/locales"
GLPI_VERSION: "10.0.6"
GLPI_SCHEMA_VERSION: "10.0.6@21cffee0fbb5afbf0d580cabdf6fd7a922598f97"
GLPI_MARKETPLACE_PRERELEASES: false
GLPI_MIN_PHP: "7.4.0"
GLPI_MAX_PHP: "8.3.0"
GLPI_YEAR: "2023"

</details><details><summary>Libraries</summary><pre> 
htmlawed/htmlawed version 1.2.9 in (/var/www/itsm.filial-fnkc/vendor/htmlawed/htmlawed)
phpmailer/phpmailer version 6.6.0 in (/var/www/itsm.filial-fnkc/vendor/phpmailer/phpmailer/src)
simplepie/simplepie version 1.5.8 in (/var/www/itsm.filial-fnkc/vendor/simplepie/simplepie/library)
tecnickcom/tcpdf version 6.6.2 in (/var/www/itsm.filial-fnkc/vendor/tecnickcom/tcpdf)
michelf/php-markdown in (/var/www/itsm.filial-fnkc/vendor/michelf/php-markdown/Michelf)
true/punycode in (/var/www/itsm.filial-fnkc/vendor/true/punycode/src)
iamcal/lib_autolink in (/var/www/itsm.filial-fnkc/vendor/iamcal/lib_autolink)
sabre/dav in (/var/www/itsm.filial-fnkc/vendor/sabre/dav/lib/DAV)
sabre/http in (/var/www/itsm.filial-fnkc/vendor/sabre/http/lib)
sabre/uri in (/var/www/itsm.filial-fnkc/vendor/sabre/uri/lib)
sabre/vobject in (/var/www/itsm.filial-fnkc/vendor/sabre/vobject/lib)
laminas/laminas-i18n in (/var/www/itsm.filial-fnkc/vendor/laminas/laminas-i18n/src)
laminas/laminas-servicemanager in (/var/www/itsm.filial-fnkc/vendor/laminas/laminas-servicemanager/src)
monolog/monolog in (/var/www/itsm.filial-fnkc/vendor/monolog/monolog/src/Monolog)
sebastian/diff in (/var/www/itsm.filial-fnkc/vendor/sebastian/diff/src)
donatj/phpuseragentparser in (/var/www/itsm.filial-fnkc/vendor/donatj/phpuseragentparser/src/UserAgent)
elvanto/litemoji in (/var/www/itsm.filial-fnkc/vendor/elvanto/litemoji/src)
symfony/console in (/var/www/itsm.filial-fnkc/vendor/symfony/console)
scssphp/scssphp in (/var/www/itsm.filial-fnkc/vendor/scssphp/scssphp/src)
laminas/laminas-mail in (/var/www/itsm.filial-fnkc/vendor/laminas/laminas-mail/src/Protocol)
laminas/laminas-mime in (/var/www/itsm.filial-fnkc/vendor/laminas/laminas-mime/src)
rlanvin/php-rrule in (/var/www/itsm.filial-fnkc/vendor/rlanvin/php-rrule/src)
blueimp/jquery-file-upload in (/var/www/itsm.filial-fnkc/vendor/blueimp/jquery-file-upload/server/php)
ramsey/uuid in (/var/www/itsm.filial-fnkc/vendor/ramsey/uuid/src)
psr/log in (/var/www/itsm.filial-fnkc/vendor/psr/log/Psr/Log)
psr/simple-cache in (/var/www/itsm.filial-fnkc/vendor/psr/simple-cache/src)
psr/cache in (/var/www/itsm.filial-fnkc/vendor/psr/cache/src)
league/csv in (/var/www/itsm.filial-fnkc/vendor/league/csv/src)
mexitek/phpcolors in (/var/www/itsm.filial-fnkc/vendor/mexitek/phpcolors/src/Mexitek/PHPColors)
guzzlehttp/guzzle in (/var/www/itsm.filial-fnkc/vendor/guzzlehttp/guzzle/src)
guzzlehttp/psr7 in (/var/www/itsm.filial-fnkc/vendor/guzzlehttp/psr7/src)
glpi-project/inventory_format in (/var/www/itsm.filial-fnkc/vendor/glpi-project/inventory_format/lib/php)
wapmorgan/unified-archive in (/var/www/itsm.filial-fnkc/vendor/wapmorgan/unified-archive/src)
paragonie/sodium_compat in (/var/www/itsm.filial-fnkc/vendor/paragonie/sodium_compat/src)
symfony/cache in (/var/www/itsm.filial-fnkc/vendor/symfony/cache)
html2text/html2text in (/var/www/itsm.filial-fnkc/vendor/html2text/html2text/src)
symfony/css-selector in (/var/www/itsm.filial-fnkc/vendor/symfony/css-selector)
symfony/dom-crawler in (/var/www/itsm.filial-fnkc/vendor/symfony/dom-crawler)
twig/twig in (/var/www/itsm.filial-fnkc/vendor/twig/twig/src)
twig/string-extra in (/var/www/itsm.filial-fnkc/vendor/twig/string-extra)
symfony/polyfill-ctype not found
symfony/polyfill-iconv not found
symfony/polyfill-mbstring not found
symfony/polyfill-php80 not found
symfony/polyfill-php81 not found
symfony/polyfill-php82 in (/var/www/itsm.filial-fnkc/vendor/symfony/polyfill-php82)

</details><details><summary>SQL replicas</summary><pre> 
Not active

</details><details><summary>Notifications</summary><pre> 
Way of sending emails: SMTP+SSL (samuylov.sa@kmail.fnkc-fmba.ru)

</details><details><summary>Plugins list</summary><pre> 
    advancedplanning     Name: advancedplanning               Version: 1.1.0      State: Enabled                                 
        Install Method: Marketplace
    archisw              Name: Apps structures                Version: 3.0.0      State: Enabled                                 
        Install Method: Marketplace
    archibp              Name: Business Processes             Version: 1.0.14     State: Enabled                                 
        Install Method: Marketplace
    connections          Name: Connections                    Version: 10.0.0     State: Enabled                                 
        Install Method: Marketplace
    credit               Name: Credit vouchers                Version: 1.11.3     State: Enabled                                 
        Install Method: Marketplace
    dataflows            Name: Dataflows                      Version: 2.2.18     State: Installed / not activated               
        Install Method: Marketplace
    archimap             Name: Diagrams                       Version: 3.2.19     State: Enabled                                 
        Install Method: Marketplace
    formcreator          Name: Form Creator                   Version: 2.13.4     State: Enabled                                 
        Install Method: Marketplace
    archifun             Name: Functional Areas               Version: 2.2.9      State: Enabled                                 
        Install Method: Marketplace
    glpiinventory        Name: GLPI Inventory                 Version: 1.1.0      State: Enabled                                 
        Install Method: Marketplace
    geninventorynumber   Name: Inventory number generation    Version: 2.8.3      State: Enabled                                 
        Install Method: Marketplace
    addressing           Name: IP Adressing                   Version: 3.0.1      State: Enabled                                 
        Install Method: Marketplace
    purchaserequest      Name: Purchase request               Version: 3.0.1      State: Enabled                                 
        Install Method: Marketplace
    statecheck           Name: Statecheck Rules               Version: 2.3.9      State: Enabled                                 
        Install Method: Marketplace
    useditemsexport      Name: Used items export              Version: 2.5.1      State: Enabled                                 
        Install Method: Marketplace
    webresources         Name: Web Resources                  Version: 2.0.3      State: Enabled                                 
        Install Method: Marketplace
    accounts             Name: Аккаунты                       Version: 3.0.2      State: Enabled                           
              Install Method: Marketplace
    webapplications      Name: Веб-приложений              Version: 4.0.1      State: Enabled                         
                Install Method: Marketplace
    datainjection        Name: Добавление данных        Version: 2.12.1     State: Enabled                         
                Install Method: Marketplace
    fields               Name: Дополнительные поля    Version: 1.20.0     State: Enabled                         
                Install Method: Marketplace
    additionalalerts     Name: Другие уведомления      Version: 2.4.0      State: Enabled                         
                Install Method: Marketplace
    positions            Name: Картография                   Version: 6.0.2      State: Enabled                         
                Install Method: Marketplace
    news                 Name: Оповещения                     Version: 1.10.5     State: Enabled                         
                Install Method: Marketplace
    mreporting           Name: Подробные отчеты          Version: 1.8.2      State: Enabled                         
                Install Method: Marketplace
    typology             Name: Типологий                      Version: 3.0.0      State: Enabled                          
               Install Method: Marketplace
    order                Name: Управление заказами    Version: 2.10.1     State: Enabled                         
                Install Method: Marketplace
    genericobject        Name: Управление объектами  Version: 2.14.1     State: Enabled                         
                Install Method: Marketplace
    tag                  Name: Управление тегами        Version: 2.11.0     State: Enabled                         
                Install Method: Marketplace

</pre></details>

Anything else?

No response

trasher commented 1 year ago

Sounds like assigning status from crontask do add a lock on status field, this should not.