DSM 6 Adventures: Explosive Update

My experience upgrading a DS214play from DSM 5.2 to 6.0

I actually planned to make my next post about setting up Synology’s Directory Server on DSM and use it for authentication with GitBlit, but as John Lennon once said:

Life is what happens while you are busy making other plans

And so it happened that DSM 6 was released.
I thought I just update to the new version real quick, enjoy some new features and go on with the plans I have for my home lab, but things went down a very different road.

The Situation

If you look through this blog, you see that I am using my NAS for a little bit more than just for storing and streaming my media.
As of now this very blog is hosted on my NAS.
Your visit is tracked in Piwik so that I can get some vanity numbers and this is also hosted on my NAS.
I run a GitBlit server for my little hobby projects and Jenkins for picking up changes to my resume.json inspired git repository and publish them to my CV website, which makes up the About Me page of this blog. I host these two applications with the help of Tomcat, which runs on my NAS, too.
This is true for both before and after the update from DSM 5.2 to version 6.0, but basically all of this was down for the entire weekend and some of it even up until yesterday.

What happened

Afte updating to DSM 6.0, which is basically just a click away in the Control Panel of your update ready Synology NAS device (find the list of supported models here), all of the things described above were not working correctly in one way or another.

WordPress got weird

My WordPress blog was in a more or less broken state.
Some posts looked normal but for other posts things were broken. The sidebar did not show up and neither did the comments section.
I couldn’t change anything about the theme, because when starting the customizer I was greeted by a dialog telling me that this theme required WordPress version 4.4.2.
A look at the dashboard explained the situation: The DSM 6.0 update, which brought along updates for a lot of its packages, also applied an update to the WordPress package, which actually downgraded my WordPress installation from version 4.4.2 down to version 4.3.2.
Better yet, the ability to update WordPress itself along with the installed plugins and themes was gone! I found myself stuck with a WordPress 4.3.2 installation that was using a theme and features requiring WordPress 4.4.2. A situation that was obviously leading to some problems.
It took me a while to get things working again. I will describe described the path I took to fix this in a separate post. Check it out!

Piwik went down

Piwik simply stopped working entirely. Its package had been updated after the DSM 6.0 update, too.
When trying to access Piwik, I was simply greeted by a 404 page. Needless to say that tracking my WordPress visits with Piwik was not working.
Thankfully the database itself and all the data was still there.
There are still some unsolved implications of the update that I need to go around at the moment, but all in all it is up and running again and tracking my blog. Again, I will describe the situation I encountered and how I solved it in a separate post for the sake of not cluttering this post more than I am already doing.

Tomcat got resetted

With GitBlit and Jenkins the situation was actually quite funny. I was not able to access them through HTTPS, but with HTTP they were still working fine. At least at first glance.
I accessed Jenkins and was looking at its empty welcome page. None of my jobs were to be found and no login required for access in the first place.
When accessing GitBlit I noticed that I was not able to log in with my usual credentials. Just out of curiosity I tried the default admin/admin credentials and to my surprise I was logged in, but all my repositories had gone.
The root cause was the fact that Tomcat had encountered the same fate as almost (or maybe even) all of the installed packages and got updated. In that process several Tomcat configuration files had been overwritten with their vanilla versions and in case you are wondering: No, you do not get asked what to do with your old configuration files before they get wiped during the update process!
In the related (yet to be written) post I will summarize the config files that I had customized and lost during the update in the hope of sparing you some pain and allowing you to save them to your backup before updating. Check it out here.

Wrong Expectations

So that is my experience of updating my NAS, used both for media purposes and as a home lab, from DSM 5.2 to 6.0.
I was genuinely caught by surprise here. I never had any issues with DSM updates and did not expect to get into so much trouble. But this was my fault! I had wrong expectations!
DSM 6.0 update was a big one and updated lots of packages in my case. All of the Synology owned packages updated flawlessly, continue to work without issues and sport nice new features.
The problems I encountered are all related to third party packages. A discussion on reddit made a very good analogy on how this is similar to third party packages being provided by an organization backing a Linux repository. I would not expect that organization to have tested every package and all possible update paths for all third party packages they provide. I am simply happy they do package third party software so that I have a convenient way of installing it and I need to take my own precautions when running and updating that software.

On the bright side

Everything is back up and sort of functional again, but I still might use some input from Synology’s support department on some details like the use of Nginx for example.
On the bright side I am richer for the experience, learned some new things, need to learn some more, have rethought my backup strategy and will write down those detailed posts about how I fixed the described issues hoping that it might be of use to someone and possibly even spare you some of the trouble I had.

30 thoughts on “DSM 6 Adventures: Explosive Update”

  1. Ouch! Sounds painful and extremely irritating for something like that to happen. Glad I didn’t update my DS yet. Thanks for the post and hope you recover fully!

    1. Thank you for your kind words!
      Actually I’m quite happy to have everything functional again in less than a week. The open issues should be solvable once I understand how Synology handles the packages and how they configured Nginx.
      It was exciting and educational, but you don’t want to encounter anything like that on a production system ^^

  2. Hi, got a lot of problems too with this update especially with wordpress (downgraded too). Some plugins disapears, almost all site is in 404 (my other site are 100% 403…) I was planning to use a back up with updraftplus plugins but FTP updates doesn’t work anymore with wordpress… Perhaps a configuration problem in wp-config cause I can use FTP from another client on my personnal host and I can r/w as planned.

    Did you get the same problem and what did you do to get FTP working with wordpress ?

    I also noticed a very weird permission management, for example :
    – in the GUI, I see a file as “admin owner” with “http group wich can read”.
    – I am connected as admin but CAN’T edit the file cause of bad permission !!
    – I log in ssh as admin : same, I CAN’T edit the file with vi
    – So I go root (sudo su) and change the file : I can edit and save the file but…
    – when I go back in GUI, I see that the file as lost all the group permissions.
    This behavior is the same with anyfile so it become very complicated to administrate 🙁

    If you have any idea on that I’am in 🙂
    Thanks

    1. Have you tried to SSH to the DS as admin and doing a “sudo chown -R http:http /path/to/wordpress”?
      Should solve permission problems and enable updates from the WordPress dashboard based on my experience.

    1. Thank you very much for the feedback!
      May I ask how you used the comment box and what the error was?
      I would like to try to reproduce the problem so that hopefully I can understand and fix it.

  3. I have noticed similar things. I was able to log in once but was not able to update. I then logged out and every page other than home is 404. I also noticed when trying to update

  4. Hi again ! Ok so, your mail functionnality doesn’t work too 😀 I didn’t receive mail so I didn’t see you answerd me 🙂
    Each comment on your site generate a problem, i will copy paste it in the next comment.

    For my problem, i was stuck all the day, finaly I understood one thing : you must not change permission manually in shell, otherwise it will break the DSM system permission. You have to pute “users” as reading otherwise you can’t even create a vhost (that is crazy). I am writing an article all this shitty problems, I am very disapointed about this Synology update…

    But, the good news is that my website works again, but now I am stuck with 404 : as soon as I activate permalink, all links give me a 404. I tryied to change some Nginx config but still dont work. I read we just had to add this Nginx configuration lines :

    location / {
    try_files $uri $uri/ /index.php?q=$request_uri;
    }

    But the question is : in which file ? I am even not able to find the vhost configuration (which is JSON and not MUSTACHE format).
    Did you have the same problem?

    PS : I also tryed to use Apache as the GUI propose it to me, but I don’t work.

    1. Well your problems seem quite different to the problems I experienced, so I’m afraid I can’t offer any direct advice or solution.

      I am quite confused by the introduction of Nginx to be honest. In WebStation you can select Apache or Nginx as back end, but the front end side of things always seems to be Nginx. At least I believe so, because whichever of my public URLs I try to get with curl, the server attribute of the response always says Nginx…
      Anyway, I have set Apache as WebStation back end and I guess this is the reason why my .htaccess file is still respected. Without the .htaccess I would get 404 for all blog posts, too, but with .htaccess configured correctly everything is working fine.

      1. Humm you still user Apache ^^ I think my post to stackoverflow will be usefull then when you will go on Nginx ^^ I personnally tried to stay on Apache but it didn’t worked at all. Anyway, its better to follow the plateform philosophy which is using Nginx :).

        About Jetpack, I still can’t use it lol after reinstalling everything, it appears the SSL configuration is also different with Nginx and the certificate is not supplied so I can’t establish the first connection to wordpress.org…

        Dat update serisously…. I am still on it 😮

    1. Thank you for letting me know!

      I was able to see a somewhat similar error now.
      I am using the comment box of the JetPack plugin, so I’m not sure I’ll be able to solve the problem on my own. There are not that many configuration options and I don’t see how anything inside the configuration might cause such a problem. I’m afraid I might need to wipe the plugin, reinstall and configure it and see if the problem is reproducible. If it is, I need to report to the JetPack devs, I guess.
      As a backup I could use the default comment box, but that one does not support social logins, the main reason for switching to the JetPack comments box.

        1. Wow, that was fast. I still need to put my post together.
          Thank you for linking back to my blog =)
          BTW: Nice looking blog you have. I like the use of emoji in the post’s paragraphs.

  5. Hi Carmelo

    You seem to be a bit of an expert on DSM 6 and the WordPress package so I am hoping you can advise me on a problem I am having with wordpress on my DS216j.

    The WordPress package installed with no problems and I can create and publish posts (internally). My problem is that hyperlinks use the LAN address of 10.0.0.14 (my NAS). I have a static IP address assigned to the DS but if I substitute that for the LAN address in the URLs I get ‘page not found’

    The Syno forums have other people posting the same problem but no replies. Syno support referred me to wordpress.org/support and they have, so far, not responded.

    Can you help please?

    Also have you tried installing any emoji plugins on DSM 6? If you have, a Quick Tiup on that would be appreciated

    1. Hi Paul

      I am not sure I understand your situation. Might make sense to tell me what address you use to get to your WordPress blog and its admin interface and what you are trying to achieve.
      Do you want a blog that is available to the public through the internet?

      By hyperlinks I assume you mean the links on your blog pointing to the individual blog posts.
      When you say you have a static IP address assigned to the DS do you mean a LAN address or an internet available IP address?
      Your LAN address isn’t really useful with WordPress, because no one except the ones being in your LAN will be able to access it.
      Can you please check what you have configured as WordPress Address and Site Address in the Settings General Screen? Check this to see which screen I mean.

      About plugin installation there is really nothing special to it. Access your wp-admin URL, go to Plugins -> Add New, search for the plugin you want and hit the “Install Now” button.
      I have installed several plugins that way, however no emoji plugins.

      Update: On a second thought you might just be missing an .htaccess file in your WordPress installation’s root folder (the one containing index.php).
      Mine looks like this (you can ignore the first line):

      RedirectMatch 301 ^/wordpress/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://melo.myds.me/wordpress/$4
      # BEGIN WordPress
      
      RewriteEngine On
      RewriteBase /wordpress/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /wordpress/index.php [L]
      
      
      # END WordPress
      1. Hi Carmelo

        Thanks for your rapid and detailed response

        First up, I am a non techie so much of this stuff is alien to me.

        Yes I want a blog that is available on the internet.

        Currently I use the LAN address of 10.0.014 to access WordPress. That was what the installation defaulted to. I have a QuickConnect ID of [redacted] and a static IP of [redacted] assigned to the DS216j and I am successfully using the latter to access Photo Station externally.

        I understand the LAN address is useless to anyone outside the network. I tried substituting my static IP address for my LAN address in a few of the page URLs but got page not found errors.

        WordPress Address and Site Address are both configured as http://10.0.0.14/wordpress, which is what the installation process defaulted them to.

        Plug ins – thanks for the tip. I will try that out once I have fixed the bigger problem

        Re your update on .htaccess file. That is WAY beyond my comfort zone. I would not know where or how to start nor what I was doing! 🙁

        Paul

        1. Hi Paul

          don’t worry. We won’t need to be too techie to get this done.
          Good news is you have a static IP that is working to access your NAS externally =)

          You don’t have a domain, but QuickConnect access, which I believe might be tricky or even impossible to use for accessing your WordPress installation.
          However you can use http://quickconnect.to in combination with your QuickConnect ID to access your NAS, which is a little easier than remembering an IP 😉

          I believe you have two options:
          – Configure http://109.155.209.84/wordpress as WordPress Address and Site Address in the Settings General screen.
          – Get a public domain (for example a dynamic one through DSM, check here how) and configure that domain as WordPress Address and Site Address (for example http://yourNewDomain.synology.me/wordpress)

          First option would not require anything new from you and can be implemented and verified quickly. Let me know how it goes.

          PLEASE BE AWARE:
          I accessed your Photo Station to check if your QuickConnect ID is working and I noticed that you have albums available to the public. This means I do not need to log in to see your photos, just your public IP or QuickConnectID.
          If this is not what you want, check here under “Manage Albums” to change the albums privacy settings.
          I removed your public IP and QuickConnect ID from your comment, in an effort to protect your privacy.

          1. Hi Carmelo

            Thanks again.

            I have tried my public IP, the quickconnect.to + Quick Connect ID, and also my DSM supplied public domain. None of them work.

            Do I need to set up any port rules in Control Panel?

            Paul

          2. Hi Paul,

            well I do use a myds.me DDNS address and configured port forwarding for port 80 and 443.

            I expected you have port 80 already open but maybe Photo Station is able to work with QuickConnect without requiring to forward this port.
            So if you don’t have already, setup port forwarding for port 80. Check out how here.

            I think it is strange that you can’t edit your WordPress address. According to the documentation this might be the case, if you defined the WP_SITEURL constant in your wp-config.php file. You could check this with FileStation or TextEditor. You have a web folder that should contain your wordpress folder and that is were your wp-config.php file should be.

          3. I set up a port forwarding rule. It didn’t work and it killed Photo Station

            I didn’t define anything in the wp-config file, WordPress installation must have done that. I will view / edit it as you recommend and see what transpires…..

          4. Well that was exciting. I opened in Text Editor, did a search and was then stuck with a ‘Find’ dialogue box that had no cancel button and no other way of closing it. Couldn’t get anywhere so eventually had to reboot the DS!!

            Anywho, the only relevant part of the text file says:

            if ($_SERVER[“HOST”] != “”) {
            define(‘WP_SITEURL’, $pageURL);
            } else {
            define(‘WP_SITEURL’, $pageURL.’/wordpress’);
            }

            So it looks like one should default to the other. And the reboot of the DS hasn’t changed anything in WordPress either. I’d start over and reinstall WordPress but for the fact that I have created a lot of content. Will a reinstall preserve that content or do I need to extract it somehow?

  6. I am confident we are missing something here. Adding the port forwarding and thus not being able to access Photo Station anymore? I can’t make sense of that.

    I never used QuickConnect but went for a DDNS address instead. The DiskStation will check my internet available IP, which comes from my provider, and registers that IP with their DDNS service, so that melo.myds.me can be used. Furthermore the DiskStation configures port forwarding rules on my router through UPnP. This way, when someone calls melo.myds.me the name is resolvable to my current public IP, which will lead them to my router, which will use the port forwarding rule to forward that request that came in on port 80 or 443 to the DiskStation.

    What did you observe exactly when you had port forwarding for port 80 active?

    You do have a web folder. You can put a generic hello world as index.html file in the web folder and you should be able to call your public ip and see that html page. Is that working at least?

    About reinstalling WordPress: During installation you provided it with connection information and credentials for MariaDB. This is where WordPress stored your posts, comments, etc. Plugins and theme customization will be stored in the wordpress folder.
    You can backup that folder and you can use PhpMyAdmin to create a backup of the wordpressblog database by choosing export.
    This is just to be sure, because I don’t know if uninstalling WordPress will actually delete the database.

    I’m sorry I can’t be of more help =(

    1. Hi Carmelo

      Can we continue this discussion by eMail? Then I can send you screenshots of what I see. You can see my email address right?

      And please don’t apologise fro not being able to help more. You have already gone way beyond what I expected.

      Paul

    2. OK so I have been having another go at this.

      Web Station is active and responding and I have edited the index.hml file so that I am sure I am seeing the genuine thing.
      I recalled on old problem I have outstanding with Synology about Cloud Station and the inability to send file request links. That seemed to be a similar issue (lack of external access.)

      So I uninstalled Cloud Station ion case it was muddying teh waters.

      I took a look at my router’s UPnP and Port Forwarding tables

      UPnP This is the backup NAS, needs no external conn
      TCP 80 58170 10.0.0.200
      TCP 443 58725 10.0.0.200
      TCP 5010 65238 10.0.0.200
      TCP 5011 65239 10.0.0.200
      UDP 53445 53445 10.0.0.5

      UPnp This is the correct NAS
      TCP 5000 61320 10.0.0.14
      TCP 80 61321 10.0.0.14
      TCP 443 58583 10.0.0.14
      TCP 5001 58585 10.0.0.14

      Port Forwarding
      FTP 20 21 20 21 10.0.0.14

      Port Triggering
      Synology TCP:80 TCP/UDP:80 Any

      I have disabled all router rules on the backup NAS but they are still shown as active in the router’s table. That said, they are using different external ports and IP addresses so that’s not the issue, is it?

      I installed phpadmin and tried to login. I fell at the first hurdle, username and password. I tried root and Syno admin and password, even my own account and password but I am blocked.

      I am up to my neck and starting to swallow water now! 🙂

      Paul

    3. So I decided to bite the bullet.

      I exported my content and uninstalled everything including MariaDB and all it’s databases

      I checked all relevant web folders were empty

      I rebooted my DS

      I reinstalled from scratch.

      This time the install recognised my public IP address but when I tried to login it timed out

      I edited the URL in my browser window to use my LAN IP address and got in.

      Looked at settings page and the WordPress URL is my LAN IP and the Site Address is my Public IP. There must have been a remnant reference somewhere to the old settings

      Re Imported my content and all my embedded images are gone.

      I am becoming seriously p****d off with Synology now and I want to still love it

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.