Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Saved (not published) page name change is applied if database cache is cleared #11074

Closed
lordscarlet opened this issue Sep 10, 2021 · 3 comments

Comments

@lordscarlet
Copy link
Contributor

lordscarlet commented Sep 10, 2021

Which exact Umbraco version are you using? For example: 8.13.1 - don't just write v8

8.14.1

Bug summary

If a change is made to a page name, and that change is saved but not published, if the database cache is cleared, the change takes effect on the published page.

Specifics

If I have a page, with page name "ABC", it exists at www.mysite.com/abc. I then decide to change the page name to "123", but I am not ready to publish, so I save the change. Everything remains as expected.

However, in the meantime, if the database cache is cleared, the page will no longer live at www.mysite.com/abc. This page will return a 404. It will exist at www.mystie.com/123.

Additionally, if the page is subsequently published, a record is not added to the Redirect URL mapping.

I have been able to reproduce this in both 8.14.1 and 8.10.1

Steps to reproduce

  1. Create a page
  2. Publish it
  3. Change the name
  4. Save it (don't publish)
  5. Browse to URL in step 1, page will display as expected
  6. Rebuild Database Cache
  7. Reload Memory Cache
  8. Browse to the URL published in step 2
  9. The page will respond with a 404
  10. Browse to the URL based on step 4
  11. The page will render

name-change-bug

Expected result / actual result

Expected

  1. The URL should remain the same until the name change is published
  2. When published, the previous url should be mapped in Redirect URL Management

Actual

  1. After the database cache clear, the page now lives at the not-yet-published new URL
  2. After the database cache clear, the page does not live at the currently-published existing URL
  3. Once published, the previously-published existing URL does not redirect to the new URL
@nul800sebastiaan
Copy link
Member

Thanks @lordscarlet for the bug report. I can reproduce. Obviously it's not ideal but... there's also almost never a good reason to have to rebuild those caches(!). If you have reasons to rebuild those caches I'd love to hear exactly what problem you're trying to solve there but generally it is a good idea to keep away from those buttons.

That said, we would love to get this specific problem fixed. We could use a little help, if anyone would like to dig in some deeper there.

@umbrabot
Copy link

umbrabot commented Oct 5, 2021

Hi @lordscarlet,

We're writing to let you know that we would love some help with this issue. We feel that this issue is ideal to flag for a community member to work on it. Once flagged here, folk looking for issues to work on will know to look at yours. Of course, please feel free work on this yourself ;-). If there are any changes to this status, we'll be sure to let you know.

For more information about issues and states, have a look at this blog post

Thanks muchly, from your friendly Umbraco GitHub bot :-)

@lordscarlet
Copy link
Contributor Author

@nul800sebastiaan it happens more often than you would hope for us. Perhaps we have some configuration that is wrong, or some serious data issues from a 10+ year old Umbraco database that has made it's way to v8. I know that we have thus far been unable to get the Published Cache Status to show as ok.

Database cache is NOT ok (rebuild?). ContentStore contains 27288 items and has 5 generations and 1 snapshot. MediaStore contains 179 items and has 1 generation and 1 snapshot.

We have not had the time to try and dig that up. Over the past 12-18 months we upgraded from v4.11 to v8.14.1.

I don't know if here is the place to discuss, but I know that one instance is:

We have 8 servers running the Umbraco instance. 6 are load balanced as the front end serving content to the public. 1 is for the back office. The last is load balanced to the back office server, but only receives traffic if the first server is unreachable. At times, when we publish a node, it gets published on 5 of the 6 front end servers (for instance). When this happens, we have found that there are other nodes with the same problem, but we did not notice at the time because the LB loaded one of the "good" servers. Once that happens, the best approach we have is to rebuild stuff.

For what it is worth we have over 54,000 rows in cmsContentNu

Obviously even having to do it once could have some pretty bad repercussions.

Regardless, if someone on our team has a chance to look at this we will grab it. We haven't worked around the caching portion of the code yet, but hopefully it is pretty straight forward.

lordscarlet added a commit to lordscarlet/Umbraco-CMS that referenced this issue Oct 7, 2021
bergmania added a commit that referenced this issue Oct 20, 2021
* Adjust icon in umb-checkbox and ensure icon is centered

* Missing nl translation for blockEditor_addBlock

* Implement icon parameter for doctype editor (#11008)

* fix: implement icon parameter for doctype editor

issue #10108

* fix: move color from icon to class attribute

* fix: removed defined colors, defaulting to the standard dark grey (ie "no color picked" in icon picker)

* cleaned up unused dependencies, double quotes to single, removed unused 'color' param from the create methods, and use shorthand object creation in createDocType (if the key has the same name as the variable passed as a prop, we only need to pass the key name)

* fix comment

Co-authored-by: Nathan Woulfe <[email protected]>

* Align sortable handle vertically in multivalues prevalue editor

* 10341: Use different picker for content types (#10896)

* 10341: Use different picker for content types

* use es6 where possible (inc removing underscore for teeny tiny performance improvement)

Co-authored-by: Nathan Woulfe <[email protected]>

* Falling back to contentTypeName when Block List label is empty (#10963)

* Falling back to contentTypeName when Block List label is empty

* Adding $contentTypeName variable for Block List labels

* Fix incorrect attribute

* Grid: Add button styling fix (#10978)

* Add missing focus styling

* Ensure add button is perfectly rounded and remove unused / uneeded CSS.

* Remove redundant border-color property

* Revert removal of unused css

Co-authored-by: BatJan <[email protected]>
Co-authored-by: Jan Skovgaard Olsen <[email protected]>

* Create content template localization (#10945)

* Don't use self-closing element for custom HTML elements

* Use button element for close/cancel in copy dialog

* Update localization of "createBlueprintFrom"

Co-authored-by: Nathan Woulfe <[email protected]>

* Cleanup examine search results, and adds ability to toggle fields (#9141)

* Cleanup examine search results, and adds ability to toggle fields

* update table to use joinarray filter with one-time binding to avoid recalculating filter values, updated filter to not explode when array arg is null

* fix failing tests - improve filter to not fail on non-array params, update tests accordingly

Co-authored-by: Nathan Woulfe <[email protected]>

* Add EntityController GetUrlsByUdis

Enables loading multiple URLs in a single request for Media & Documents

* Update content picker to use GetUrlsByUdis

* Allows replacing MainDom with alternate DB

There are some cases where there is a complex hosting strategy and folks want a readonly database and are hosting on Azure. In that case, it is not entirely possible to have a readonly Umbraco database because SqlMainDom is required and part of that requirement is to have read/write access to the umbraco key value table.
This PR allows for the default MainDom to be replaced and to allow for an SqlMainDomLock to use an alternate connection string so that a separate read/write database can be used.

* Remove inherited property group id/key when local properties are added (#11231)

* Remove inherited property group id/key when local properties are added

* Rebind saved content type values

* Remove inherited from save group

* Rename parameter for clarity

* Removes annoying wait text, which causes layout jank

* v8: Backoffice Welsh language translation updates (#11240)

* Updated the Welsh language file to include newly added keys (based on the en us language file)

* Updated the searchInputDescription key

* Updated the endTitle key

* Use medium sized overlay

* Use umb-icon component for icons in content type groups and tabs

* fixes wrong reference to enterSubmitFolder method in ng-keydown

* 11251: Don't add default dashboard to url

* Fix preview of SVG when height and width not are set

* If caching a published document, make sure you use the published Name… (#11313)

* If caching a published document, make sure you use the published Name. Closes #11074.

* Fix case of new node

Co-authored-by: Moore, Douglas S <[email protected]>

* Added missing Italian translations (#11197)

* Resolve incorrect ContentSavedState for failed publish

Closes #11290 (for v8)

* add modelValue validation for server to correctly update validation errors

* 11048: Bugfix for groups and properties that get replaced (#11257)

(cherry picked from commit 1605dc1)

* Icon fallback to `icon-document` for existing document types (#11283)

* Align create buttons styling (#11352)

* Added button for cancelling dictionary create action

* Use hideMenu

* Align dictionary create with the other creates

* Align import documenttype

* Align for data type folder create

* Align document type create buttons

* Forgot small ng-show

* Align create media folder buttons

* Align create macro buttons

* Align create relation buttons

* Align create partial view macro folder buttons

* Align partial view folder create buttons

* Align create scripts folder buttons

* Align create scripts folder buttons

* Use primary instead of success

* V8: Duplicate MemberGroup names cause MemberGroup mixup (#11291)

* Prevented duplicate member group names

* Added English lang

* Updated 'Exist' typo

* add labels in FR and NL

* Adding property group aliases to ex.message

* Adding invalid prop group aliases as ModelState errors, so we don't introduce breaking changes

* Pointing the actual reason for invalidating composition

* Validate all content type dependencies and throw a single InvalidCompositionException

* Rename based on review comments

* Update composition validation error messages

* Update InvalidCompositionException message

* Allow switching property editor from numeric to slider (#11287)

* Make it possible to change from numeric/decimal property editor to slider without breaking editor

* Formatting

* Enables friendly pasting in multipletextbox

* UI API docs: Added reset rules for .close class

* UI API docs: Fixed incorrect method name

* 11331: Check property on instance if id is not set yet

* Fixed cypress tests

Co-authored-by: Bjarne Fyrstenborg <[email protected]>
Co-authored-by: Corné Strijkert <[email protected]>
Co-authored-by: Søren Gregersen <[email protected]>
Co-authored-by: Nathan Woulfe <[email protected]>
Co-authored-by: patrickdemooij9 <[email protected]>
Co-authored-by: Callum Whyte <[email protected]>
Co-authored-by: Jan Skovgaard <[email protected]>
Co-authored-by: BatJan <[email protected]>
Co-authored-by: Jan Skovgaard Olsen <[email protected]>
Co-authored-by: Søren Kottal <[email protected]>
Co-authored-by: Paul Johnson <[email protected]>
Co-authored-by: Shannon <[email protected]>
Co-authored-by: Sebastiaan Janssen <[email protected]>
Co-authored-by: Ronald Barendse <[email protected]>
Co-authored-by: Owain Jones <[email protected]>
Co-authored-by: Mole <[email protected]>
Co-authored-by: Doug Moore <[email protected]>
Co-authored-by: Moore, Douglas S <[email protected]>
Co-authored-by: Martino Gabrielli <[email protected]>
Co-authored-by: Nikolaj Geisle <[email protected]>
Co-authored-by: Mads Rasmussen <[email protected]>
Co-authored-by: Jamie Townsend <[email protected]>
Co-authored-by: Elitsa Marinovska <[email protected]>
Co-authored-by: Anders Bjerner <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants