{
    "api_version": "1",
    "kind": "dse_post",
    "self": "https://update.dsesecurity.com/api/v1/posts/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/",
    "item": {
        "id": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/",
        "slug": "dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match",
        "url": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/",
        "alternate_urls": {
            "markdown": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match.md",
            "json": "https://update.dsesecurity.com/api/v1/posts/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/"
        },
        "title": "Do not treat a missing Service Fabric node property as a negative match",
        "summary": "Can a Service Fabric node satisfy a placement constraint when it does not define the referenced property?",
        "format": {
            "slug": "guide",
            "name": "Guide"
        },
        "priority": {
            "slug": "info",
            "name": "Information"
        },
        "featured": false,
        "image": {
            "theme": "continuity-recovery",
            "label": "Continuity & recovery",
            "alt": "Paired infrastructure paths converging on a stable recovered service.",
            "card_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-card.webp?v=1.8.20",
            "hero_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-hero.webp?v=1.8.20",
            "social_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
            "width": 2400,
            "height": 1350
        },
        "topics": [
            {
                "slug": "business-continuity",
                "name": "Business Continuity",
                "url": "https://update.dsesecurity.com/topic/business-continuity/"
            },
            {
                "slug": "it",
                "name": "IT",
                "url": "https://update.dsesecurity.com/topic/it/"
            }
        ],
        "author": {
            "name": "DSE Security Editorial Team",
            "url": "https://update.dsesecurity.com/#editorial-team",
            "type": "Organization"
        },
        "publisher": {
            "name": "Detection Systems & Engineering",
            "url": "https://dsesecurity.com/"
        },
        "published_at": "2026-09-10T00:26:29+00:00",
        "modified_at": "2026-09-10T01:40:03+00:00",
        "reviewed_on": "2026-09-09",
        "reading_minutes": 2,
        "word_count": 250,
        "potentially_affected": "Service Fabric services using node-property placement constraints.",
        "dse_recommendation": "DSE recommends checking the complete expression against the actual property inventory of every intended node type.",
        "primary_source": {
            "name": "Describe a cluster by using Cluster Resource Manager - Azure Service Fabric | Microsoft Learn",
            "url": "https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description",
            "published_on": null,
            "authority": "Microsoft Learn"
        },
        "publishing_principles": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
        "usage_info": "https://update.dsesecurity.com/usage/",
        "copyright_notice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
        "content_html": "<h2>Source facts</h2>\n<p>Service Fabric places a service only on nodes where its complete placement expression evaluates true. A node missing a referenced property does not match a constraint containing that property. Updating a service&#8217;s placement constraint replaces its previous expression. Changing node properties instead requires a cluster-configuration upgrade and a restart of each affected node to report the new values. <a href=\"https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Learn</a>.</p>\n<h2>Applicability</h2>\n<p>Use this review when an apparently available node is excluded from placement, especially after a new property is introduced. Compare an absent property with an explicitly assigned value; do not assume absence satisfies the intended negative comparison. Identify whether the proposed correction changes the service expression or the node&#8217;s declared properties.</p>\n<h2>DSE recommendation</h2>\n<p>DSE recommends checking the complete expression against the actual property inventory of every intended node type. Preserve the earlier service constraint before modifying it, and combine the required conditions deliberately rather than treating an update as an appended clause. If missing node properties are the problem, have the cluster owner plan the documented rolling configuration change and its restart impact.</p>\n<h2>Verification</h2>\n<p>Test representative nodes with the property present and absent in a controlled service placement scenario. Inspect the resulting full constraint after an approved update and verify that unrelated requirements remain represented. For a node-property change, confirm the affected nodes have reported the new values after their upgrade. Record eligibility and actual placement separately; an intended hardware label is not evidence that the cluster received that property.</p>\n<h2>Official references</h2>\n<p><a href=\"https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Learn</a>. Source retrieved September 9, 2026.</p>",
        "content_text": "Source facts\nService Fabric places a service only on nodes where its complete placement expression evaluates true. A node missing a referenced property does not match a constraint containing that property. Updating a service’s placement constraint replaces its previous expression. Changing node properties instead requires a cluster-configuration upgrade and a restart of each affected node to report the new values. Microsoft Learn.\nApplicability\nUse this review when an apparently available node is excluded from placement, especially after a new property is introduced. Compare an absent property with an explicitly assigned value; do not assume absence satisfies the intended negative comparison. Identify whether the proposed correction changes the service expression or the node’s declared properties.\nDSE recommendation\nDSE recommends checking the complete expression against the actual property inventory of every intended node type. Preserve the earlier service constraint before modifying it, and combine the required conditions deliberately rather than treating an update as an appended clause. If missing node properties are the problem, have the cluster owner plan the documented rolling configuration change and its restart impact.\nVerification\nTest representative nodes with the property present and absent in a controlled service placement scenario. Inspect the resulting full constraint after an approved update and verify that unrelated requirements remain represented. For a node-property change, confirm the affected nodes have reported the new values after their upgrade. Record eligibility and actual placement separately; an intended hardware label is not evidence that the cluster received that property.\nOfficial references\nMicrosoft Learn. Source retrieved September 9, 2026.",
        "content_markdown": "## Source facts\n\nService Fabric places a service only on nodes where its complete placement expression evaluates true. A node missing a referenced property does not match a constraint containing that property. Updating a service’s placement constraint replaces its previous expression. Changing node properties instead requires a cluster-configuration upgrade and a restart of each affected node to report the new values. [Microsoft Learn](https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description).\n\n## Applicability\n\nUse this review when an apparently available node is excluded from placement, especially after a new property is introduced. Compare an absent property with an explicitly assigned value; do not assume absence satisfies the intended negative comparison. Identify whether the proposed correction changes the service expression or the node’s declared properties.\n\n## DSE recommendation\n\nDSE recommends checking the complete expression against the actual property inventory of every intended node type. Preserve the earlier service constraint before modifying it, and combine the required conditions deliberately rather than treating an update as an appended clause. If missing node properties are the problem, have the cluster owner plan the documented rolling configuration change and its restart impact.\n\n## Verification\n\nTest representative nodes with the property present and absent in a controlled service placement scenario. Inspect the resulting full constraint after an approved update and verify that unrelated requirements remain represented. For a node-property change, confirm the affected nodes have reported the new values after their upgrade. Record eligibility and actual placement separately; an intended hardware label is not evidence that the cluster received that property.\n\n## Official references\n\n[Microsoft Learn](https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description). Source retrieved September 9, 2026."
    },
    "json_ld": {
        "@context": "https://schema.org",
        "@graph": [
            {
                "@type": "Organization",
                "@id": "https://dsesecurity.com/#organization",
                "name": "Detection Systems & Engineering",
                "alternateName": "DSE Security",
                "url": "https://dsesecurity.com/",
                "logo": {
                    "@type": "ImageObject",
                    "url": "https://update.dsesecurity.com/assets/dse-logo-20260812.png?v=1.8.20"
                }
            },
            {
                "@type": "Organization",
                "@id": "https://update.dsesecurity.com/#editorial-team",
                "name": "DSE Security Editorial Team",
                "url": "https://update.dsesecurity.com/",
                "parentOrganization": {
                    "@id": "https://dsesecurity.com/#organization"
                }
            },
            {
                "@type": "WebSite",
                "@id": "https://update.dsesecurity.com/#website",
                "name": "DSE Updates",
                "alternateName": "DSE Security Knowledge Hub",
                "url": "https://update.dsesecurity.com/",
                "inLanguage": "en-US",
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "potentialAction": {
                    "@type": "SearchAction",
                    "target": {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://update.dsesecurity.com/?q={search_term_string}"
                    },
                    "query-input": "required name=search_term_string"
                }
            },
            {
                "@type": "WebPage",
                "@id": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/",
                "url": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/",
                "isPartOf": {
                    "@id": "https://update.dsesecurity.com/#website"
                },
                "lastReviewed": "2026-09-09"
            },
            {
                "@type": "BreadcrumbList",
                "@id": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/#breadcrumbs",
                "itemListElement": [
                    {
                        "@type": "ListItem",
                        "position": 1,
                        "name": "DSE Updates",
                        "item": "https://update.dsesecurity.com/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 2,
                        "name": "Do not treat a missing Service Fabric node property as a negative match",
                        "item": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/"
                    }
                ]
            },
            {
                "@type": [
                    "Article",
                    "TechArticle"
                ],
                "@id": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/#article",
                "identifier": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/",
                "url": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/",
                "headline": "Do not treat a missing Service Fabric node property as a negative match",
                "description": "Can a Service Fabric node satisfy a placement constraint when it does not define the referenced property?",
                "abstract": "Can a Service Fabric node satisfy a placement constraint when it does not define the referenced property?",
                "articleBody": "Source facts\nService Fabric places a service only on nodes where its complete placement expression evaluates true. A node missing a referenced property does not match a constraint containing that property. Updating a service’s placement constraint replaces its previous expression. Changing node properties instead requires a cluster-configuration upgrade and a restart of each affected node to report the new values. Microsoft Learn.\nApplicability\nUse this review when an apparently available node is excluded from placement, especially after a new property is introduced. Compare an absent property with an explicitly assigned value; do not assume absence satisfies the intended negative comparison. Identify whether the proposed correction changes the service expression or the node’s declared properties.\nDSE recommendation\nDSE recommends checking the complete expression against the actual property inventory of every intended node type. Preserve the earlier service constraint before modifying it, and combine the required conditions deliberately rather than treating an update as an appended clause. If missing node properties are the problem, have the cluster owner plan the documented rolling configuration change and its restart impact.\nVerification\nTest representative nodes with the property present and absent in a controlled service placement scenario. Inspect the resulting full constraint after an approved update and verify that unrelated requirements remain represented. For a node-property change, confirm the affected nodes have reported the new values after their upgrade. Record eligibility and actual placement separately; an intended hardware label is not evidence that the cluster received that property.\nOfficial references\nMicrosoft Learn. Source retrieved September 9, 2026.",
                "datePublished": "2026-09-10T00:26:29+00:00",
                "dateModified": "2026-09-10T01:40:03+00:00",
                "mainEntityOfPage": {
                    "@id": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/"
                },
                "inLanguage": "en-US",
                "isAccessibleForFree": true,
                "author": {
                    "@type": "Organization",
                    "name": "DSE Security Editorial Team",
                    "url": "https://update.dsesecurity.com/#editorial-team"
                },
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "image": {
                    "@type": "ImageObject",
                    "@id": "https://update.dsesecurity.com/updates/dse-20260909-327-do-not-treat-a-missing-service-fabric-node-property-as-a-negative-match/#primaryimage",
                    "url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "contentUrl": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "width": 1200,
                    "height": 630,
                    "caption": "Do not treat a missing Service Fabric node property as a negative match"
                },
                "articleSection": [
                    "Business Continuity",
                    "IT"
                ],
                "keywords": [
                    "Business Continuity",
                    "IT",
                    "Guide",
                    "Information priority"
                ],
                "genre": "Guide",
                "about": [
                    {
                        "@type": "Thing",
                        "name": "Business Continuity",
                        "url": "https://update.dsesecurity.com/topic/business-continuity/"
                    },
                    {
                        "@type": "Thing",
                        "name": "IT",
                        "url": "https://update.dsesecurity.com/topic/it/"
                    }
                ],
                "wordCount": 250,
                "timeRequired": "PT2M",
                "publishingPrinciples": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
                "usageInfo": "https://update.dsesecurity.com/usage/",
                "copyrightHolder": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "copyrightNotice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
                "citation": {
                    "@type": "CreativeWork",
                    "name": "Describe a cluster by using Cluster Resource Manager - Azure Service Fabric | Microsoft Learn",
                    "url": "https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description"
                }
            }
        ]
    }
}